ballista VS differential-dataflow

Compare ballista vs differential-dataflow and see what are their differences.

ballista

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

differential-dataflow

An implementation of differential dataflow using timely dataflow on Rust. (by TimelyDataflow)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
ballista differential-dataflow
20 14
2,238 2,467
- 1.3%
9.3 8.3
about 3 years ago 6 days ago
Rust Rust
Apache License 2.0 MIT License
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.

ballista

Posts with mentions or reviews of ballista. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-04-16.
  • Ballista: Distributed compute platform implemented in Rust using Apache Arrow.
    1 project | /r/compsci | 11 Jun 2022
  • Open source contributions for a Data Engineer?
    17 projects | /r/dataengineering | 16 Apr 2021
    His newer project, Ballista, was also donated to Apache Arrow. I hope to get the Rust skills to collaborate with him on open source work someday too. He's also doing really cool work on spark-rapids FYI.
  • Best format to use for DataFrames in Rust and Python?
    3 projects | /r/rust | 16 Mar 2021
    https://github.com/ballista-compute/ballista/blob/main/rust/executor/src/flight_service.rs#L193-L228
  • I wrote one of the fastest DataFrame libraries
    6 projects | news.ycombinator.com | 13 Mar 2021
    I'm guessing Polars and Ballista (https://github.com/ballista-compute/ballista) have different goals, but I don't know enough about either to say what those might be. Does anyone know enough about either to explain the differences?
  • Introducing Kamu - World's first global collaborative data pipeline
    3 projects | /r/rust | 12 Mar 2021
    In your article you mention looking for a faster data engine, have you looked at Ballista https://github.com/ballista-compute/ballista? It’s pretty young but it uses the Apache Arrow memory model and the maintainer did a bunch of work on Apache Spark I believe.
  • Rust for DE?
    6 projects | /r/dataengineering | 11 Mar 2021
    https://github.com/ballista-compute/ballista is also a cool project worth checking out.
  • Julia: A Post-Mortem
    4 projects | news.ycombinator.com | 8 Mar 2021
    It’s mostly a personal favourite, but once Ballista [1] gets a bit more developed, I expect we’ll tear out our Java/Spark pipelines and replace them with that.

    The ML ecosystem in Rust is a bit underdeveloped at the moment, but work is ticking along on packages like Linfa and SmartCore, so maybe it’ll get there? In my field I’m mostly about it’s potential for correct, high-performance data pipelines that are straightforward to write in reasonable time, and hopefully a model-serving framework: I hate that so many of the current tools require annotating and shipping Python when really model-serving shouldn’t really need any Python code.

    [1] https://github.com/ballista-compute/ballista

  • Ballista 0.4.0
    1 project | /r/rust | 20 Feb 2021
  • Why isn't differential dataflow more popular?
    13 projects | news.ycombinator.com | 22 Jan 2021
    I've looked at this and thought it looked amazing, but also haven't used it for anything. Some thoughts...

    Rust is a blessing and curse. I seems like the obvious choice for data pipelines, but everything big currently exists in Java and the small stuff is in Javascript, Python or R. Maybe this will slowly change, but it's a big ship to turn. I'm hopeful that tools like this and Balista [1] will eventually get things moving.

    Since the Rust community is relatively small, language bindings would be very helpful. Being able to configure pipelines from Java or Typescript(!) would be great.

    Or maybe it's just that this form of computation is too foreign. By the time you need it, the project is so large that it's too late to redesign it to use it. I'm also unclear on how it would handle changing requirements and recomputing new aggregations over old data. Better docs with more convincing examples would be helpful here. The GitHub page showing counting isn't very compelling.

    [1] https://github.com/ballista-compute/ballista

  • ballista-compute/ballista proof-of-concept distributed compute platform primarily implemented in Rust, using Apache Arrow as the memory model.
    1 project | /r/rust | 20 Jan 2021

differential-dataflow

Posts with mentions or reviews of differential-dataflow. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-10-21.
  • We Built a Streaming SQL Engine
    3 projects | news.ycombinator.com | 21 Oct 2023
    Some recent solutions to this problem include Differential Dataflow and Materialize. It would be neat if postgres adopted something similar for live-updating materialized views.

    https://github.com/timelydataflow/differential-dataflow

    https://materialize.com/

  • Hydroflow: Dataflow Runtime in Rust
    5 projects | news.ycombinator.com | 7 Jun 2023
    I'm looking for this but can't find it, how does this project compare to differential dataflow?

    As a sibling commenter mentioned, it's built on timely dataflow (which is lower-level), but that already has differential dataflow[0] built on top of it by the same authors.

    How do they differ?

    [0]: https://github.com/TimelyDataflow/differential-dataflow

  • Using Rust to write a Data Pipeline. Thoughts. Musings.
    5 projects | /r/rust | 14 Jan 2023
  • PlanetScale Boost
    6 projects | news.ycombinator.com | 15 Nov 2022
  • Program Synthesis is Possible (2018)
    3 projects | news.ycombinator.com | 4 Sep 2022
  • Convex vs. Firebase
    7 projects | news.ycombinator.com | 21 Jun 2022
    hi! sujay from convex here. I remember reading about your "reverse query engine" when we were getting started last year and really liking that framing of the broadcast problem here.

    as james mentions, we entirely re-run the javascript function whenever we detect any of its inputs change. incrementality at this layer would be very difficult, since we're dealing with a general purpose programming language. also, since we fully sandbox and determinize these javascript "queries," the majority of the cost is in accessing the database.

    eventually, I'd like to explore "reverse query execution" on the boundary between javascript and the underlying data using an approach like differential dataflow [1]. the materialize folks [2] have made a lot of progress applying it for OLAP and readyset [3] is using similar techniques for OLTP.

    [1] https://github.com/TimelyDataflow/differential-dataflow

    [2] https://materialize.com/

    [3] https://readyset.io/

  • Announcing avalanche 0.1, a React- and Svelte-inspired GUI library
    6 projects | /r/rust | 30 Dec 2021
    differential dataflow which is used to power materialize db
  • Differential Datalog
    7 projects | news.ycombinator.com | 19 Mar 2021
    It's partially inspired by Linq, so the similarity you see is expected.

    It's not really arbitrary structures so much, though you're mostly free in what record type you use in a relation (structs and tagged enums are typical, though).

    The incremental part is that you can feed it changes to the input (additions/retractions of facts) and get changes to the outputs back with low latency (you can alternatively just use it to keep an index up-to-date, where you can quickly look up based on a key (like a materialized view in SQL)).

    This [0] section in the readme of the underlying incremental dataflow framework may help get the concept across, but feel free to follow up if you're still not seeing the incrementality.

    [0]: https://github.com/TimelyDataflow/differential-dataflow#an-e...

  • Dbt and Materialize
    3 projects | news.ycombinator.com | 1 Mar 2021
  • Materialized view questions
    1 project | /r/mit6824clojure | 28 Feb 2021

What are some alternatives?

When comparing ballista and differential-dataflow you can also consider the following projects:

spark-rapids - Spark RAPIDS plugin - accelerate Apache Spark with GPUs

materialize - The data warehouse for operational workloads.

delta-rs - A native Rust library for Delta Lake, with bindings into Python

reflow - A language and runtime for distributed, incremental data processing in the cloud

dagster - An orchestration platform for the development, production, and observation of data assets.

differential-datalog - DDlog is a programming language for incremental computation. It is well suited for writing programs that continuously update their output in response to input changes. A DDlog programmer does not write incremental algorithms; instead they specify the desired input-output mapping in a declarative manner.

Prefect - The easiest way to build, run, and monitor data pipelines at scale.

timely-dataflow - A modular implementation of timely dataflow in Rust

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

clj-3df - Clojure(Script) client for Declarative Dataflow.

airbyte - The leading data integration platform for ETL / ELT data pipelines from APIs, databases & files to data warehouses, data lakes & data lakehouses. Both self-hosted and Cloud-hosted.

rslint - A (WIP) Extremely fast JavaScript and TypeScript linter and Rust crate