blog VS ballista

Compare blog vs ballista and see what are their differences.

blog

Some notes on things I find interesting and important. (by frankmcsherry)

ballista

Distributed compute platform implemented in Rust, and powered by Apache Arrow. (by ballista-compute)
Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
blog ballista
10 20
1,926 2,238
- -
6.7 9.3
3 days ago about 3 years ago
JavaScript Rust
- Apache License 2.0
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.

blog

Posts with mentions or reviews of blog. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-02-07.
  • Advent of Code 2023 in Recursive SQL
    1 project | news.ycombinator.com | 18 Jan 2024
  • Big Data Is Dead
    3 projects | news.ycombinator.com | 7 Feb 2023
    This reminds me of a great blog post by Frank McSherry (Materialize, timely dataflow, etc) talking about how using the right tools on a laptop could beat out a bunch of these JVM distributed querying tools because... data locality basically.

    https://github.com/frankmcsherry/blog/blob/master/posts/2015...

  • Quokka and Spark/Databricks
    2 projects | /r/dataengineering | 1 Jan 2023
  • Rust for Data-Intensive Computation (2020)
    1 project | news.ycombinator.com | 24 Nov 2022
  • Cost in the Land of Databases (2017)
    1 project | news.ycombinator.com | 24 Nov 2022
  • Show HN: Cozo – new Graph DB with Datalog, embedded like SQLite, written in Rust
    8 projects | news.ycombinator.com | 8 Nov 2022
    Oh, cool!

    And yeah, licenses can be challenging and frustrating, especially the first time you release a major project.

    I am really super excited by the idea of embedded Datalog in Rust. I run into a lot of situations where I need something that fits in that awkward gap between SQL and Prolog. I want more expressiveness, better composability, and better graph support than SQL. But I also want finite-sized results that I can materialize in bounded time.

    There has been some very neat work with incrementally-updated Datalog in the Rust community. For example, I think Datafrog is really neat: https://github.com/frankmcsherry/blog/blob/master/posts/2018... But it's great to see more neat projects in this space, so thank you.

  • [AskJS] JavaScript for data processing
    5 projects | /r/javascript | 27 May 2022
  • Differential Dataflow for Mere Mortals
    3 projects | news.ycombinator.com | 15 Jun 2021
    They used to but Frank McSherry (author of differential dataflow) wrote them a specialized version without all the dataflow infrastructure [1]. It's part of the rust-lang nursery [2] now but hasn't been updated in a while, so I'm not sure what happened to it.

    [1] https://github.com/frankmcsherry/blog/blob/master/posts/2018...

    [2] https://github.com/rust-lang/datafrog

  • Why isn't differential dataflow more popular?
    13 projects | news.ycombinator.com | 22 Jan 2021
    Importantly, this doesn't just use memoization (it actually avoids having to spend memory on that), but rather uses operators (nodes in the dataflow graph) that directly work with `(time, data, delta)` tuples. The `time` is a general lattice, so fairly flexible (e.g. for expressing loop nesting/recursive computations, but also for handling multiple input sources with their own timestamps), and the `delta` type is between a (potentially commutative) semigroup (don't be confused, they use addition as the group operation) and an abelian group. E.g. collections that are iteratively refined in loops often need an abelian `delta` type, while monoids (semigroup + explicit zero element) allow for efficient append-only computations [0].

    [0]: https://github.com/frankmcsherry/blog/blob/master/posts/2019...

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

What are some alternatives?

When comparing blog and ballista you can also consider the following projects:

differential-dataflow - An implementation of differential dataflow using timely dataflow on Rust.

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

btree-typescript - A reasonably fast in-memory B+ tree with a powerful API based on the standard Map. Small minified. Well documented.

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

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

Hydra - Functional hybrid modelling (FHM) language for modelling and simulation of physical systems using implicitly formulated (undirected) Differential Algebraic Equations (DAEs)

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

pond - Immutable timeseries data structures built with Typescript

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

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.

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