delta-rs VS PyO3

Compare delta-rs vs PyO3 and see what are their differences.

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
delta-rs PyO3
28 147
1,810 10,947
5.6% 4.0%
9.7 9.8
7 days ago 7 days ago
Rust Rust
Apache License 2.0 GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

delta-rs

Posts with mentions or reviews of delta-rs. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-19.
  • Delta-rs – a Rust-based implementation of deltalake
    1 project | news.ycombinator.com | 8 Apr 2024
  • Delta Lake vs. Parquet: A Comparison
    2 projects | news.ycombinator.com | 19 Jan 2024
    I work at Databricks, but am pretty must just an OSS nerd, mainly focusing on Delta Rust recently: https://github.com/delta-io/delta-rs

    I did some keyword research and wrote this post cause lots of folks are doing searches for Delta Lake vs Parquet. I'm just trying to share a fair summary of the tradeoffs with folks who are doing this search. It's a popular post and that's why I figured I would share it here.

  • Working with Rust
    2 projects | /r/DevelEire | 16 Jun 2023
    Seeing a lot of great libraries coming out with python bindings in the data world e.g delta-rs Polars. I see it growing in this space as a C++ alternative
  • Ideas/Suggestions around setting up a data pipeline from scratch
    3 projects | /r/dataengineering | 9 Jun 2023
    If I’m not misunderstanding, you could both decode the gRPC protobuf AND write to delta lake in Rust. Tonic, Delta-rs.
  • Delta-rs with upserts
    1 project | /r/dataengineering | 3 Jun 2023
    https://github.com/delta-io/delta-rs/issues/850 … looks like it’s on the roadmap!
  • Read and filter delta files on Azure from a .net application
    1 project | /r/csharp | 31 May 2023
    Microsoft talk a lot about OneLake and that the delta file format will be the standard during the build conference. Is it only me that find it strange that their marketing team talks so much about the delta format when they do not even provide a library to work with the delta format from .net? It would be easy for them to maintain bindings to https://github.com/delta-io/delta-rs but also provide a reader that support V-Order https://learn.microsoft.com/en-us/fabric/data-engineering/delta-optimization-and-v-order?tabs=sparksql
  • Polars query engine 0.29.0 released
    3 projects | /r/rust | 8 May 2023
    I know someone will be adding this on the python side in the coming weeks. On the rust side you can use delta-rs with polars. Though you would be compiling both arrow2 and arrow-rs, so that's quite heavy.
  • Delta Lake without Databricks?
    3 projects | /r/dataengineering | 23 Apr 2023
    You don’t need DBX to use Delta Lake. You can use S3 as the backend and just use the Python Delta Lake library. It works great! https://github.com/delta-io/delta-rs
  • Seeking Recommendations for a Master Data Management Tool
    2 projects | /r/dataengineering | 1 Apr 2023
    Maybe if I get some free time soon I can formalize into a working example. Been wanting an excuse to try similar concept in delta-rs and polars/duckdb vs databricks/spark vs iceberg/polars.
  • Opportunity to contribute to a popular Rust data project (delta-rs)
    1 project | /r/rust | 30 Mar 2023
    delta-rs is a native Rust library for Delta Lake. It's a better way to store data than Parquet files and is fundamentally important library for the Rust data ecosystem. It's tightly integrated with Polars and Datafusion and there is a lot of interesting Rust work to be done.

PyO3

Posts with mentions or reviews of PyO3. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-05.
  • Encapsulation in Rust and Python
    4 projects | dev.to | 5 Apr 2024
    Integrating Rust into Python, Edward Wright, 2021-04-12 Examples for making rustpython run actual python code Calling Rust from Python using PyO3 Writing Python inside your Rust code — Part 1, 2020-04-17 RustPython, RustPython Rust for Python developers: Using Rust to optimize your Python code PyO3 (Rust bindings for Python) Musing About Pythonic Design Patterns In Rust, Teddy Rendahl, 2023-07-14
  • Rust Bindings for the Python Interpreter
    1 project | news.ycombinator.com | 20 Feb 2024
  • Polars – A bird's eye view of Polars
    4 projects | news.ycombinator.com | 13 Feb 2024
  • In Rust for Python: A Match from Heaven
    2 projects | dev.to | 3 Jan 2024
    This story unfolds as a captivating journey where the agile Flounder, representing the Python programming language, navigates the vast seas of coding under the wise guidance of Sebastian, symbolizing Rust. Central to their adventure are three powerful tridents: cargo, PyO3, and maturin.
  • Segunda linguagem
    3 projects | /r/brdev | 10 Dec 2023
  • Calling Rust from Python
    2 projects | news.ycombinator.com | 8 Oct 2023
    I would not recommend FFI + ctypes. Maintaining the bindings is tedious and error-prone. Also, Rust FFI/unsafe can be tricky even for experienced Rust devs.

    Instead PyO3 [1] lets you "write a native Python module in Rust", and it works great. A much better choice IMO.

    [1] https://github.com/PyO3/pyo3

  • Python 3.12
    6 projects | news.ycombinator.com | 2 Oct 2023
    Same w/ Rust and Python, this is really neat because now each thread could have a GIL without doing exactly what you said. The pyO3 commit to allow subinterpreters was merged 21 days ago, so this might "just work" today: https://github.com/PyO3/pyo3/pull/3446
  • Removing Garbage Collection from the Rust Language (2013)
    9 projects | news.ycombinator.com | 11 Sep 2023
    I expected someone to write a rust-based scripting language which tightly integrated with rust itself.

    In reality, it seems like the python developers and toolchain are embracing rust enough to reduce the benefits to a new alternative.

    https://github.com/PyO3/pyo3

  • Bytewax: Stream processing library built using Python and Rust
    2 projects | news.ycombinator.com | 25 Jul 2023
    Hey HN! I am one of the people working on Bytewax. Bytewax came out of our experience working with ML infrastructure at GitHub. We wanted to use Python because we could move fast, the team was very fluent in it, and the rest of our tooling was Python-native already. We didn't want to introduce JVM-based solutions into our stack because of the lack of experience and the friction we had trying to get Python-centric tooling working with existing solutions like Flink.

    In our research, we found Timely Dataflow (https://timelydataflow.github.io/timely-dataflow/, https://news.ycombinator.com/item?id=24837031) and the Naiad project (https://www.microsoft.com/en-us/research/project/naiad/) as well as PyO3 (https://github.com/PyO3/pyo3) and we thought we found a match made in heaven :). Bytewax leverages both of these projects and builds on them to provide a clean API (at least we think so) and table stakes features like connectors, state recovery, and cloud-native scaling. It has been really cool to learn about the dataflow computation model, Rust, and how to wrangle the GIL with Rust and Python :P.

    Would love to get your feedback :).

    `pip install bytewax` to get started. We have a page of guides (https://www.bytewax.io/guides) with ready-to-run examples.

  • Tell HN: Rust Is the Superglue
    3 projects | news.ycombinator.com | 15 Jul 2023
    You can practice your Rust skills by writing performant and/or gluey extensions for higher-level language such as NodeJS (checkout napi-rs) and Python or complementing JS in the browser if you target Webassembly.

    For instance, checkout Llama-node https://github.com/Atome-FE/llama-node for an involved Rust-based NodeJS extension. Python has PyO3, a Rust-Python extension toolset: https://github.com/PyO3/pyo3.

    They can help you leverage your Rust for writing cool new stuff.

What are some alternatives?

When comparing delta-rs and PyO3 you can also consider the following projects:

delta - An open-source storage framework that enables building a Lakehouse architecture with compute engines including Spark, PrestoDB, Flink, Trino, and Hive and APIs

rust-cpython - Rust <-> Python bindings

roapi - Create full-fledged APIs for slowly moving datasets without writing a single line of code.

pybind11 - Seamless operability between C++11 and Python

materialize - The data warehouse for operational workloads.

RustPython - A Python Interpreter written in Rust

ballista - Distributed compute platform implemented in Rust, and powered by Apache Arrow.

milksnake - A setuptools/wheel/cffi extension to embed a binary data in wheels

kafka-delta-ingest - A highly efficient daemon for streaming data from Kafka into Delta Lake

bincode - A binary encoder / decoder implementation in Rust.

delta-oss

uniffi-rs - a multi-language bindings generator for rust