ballista
differential-datalog
ballista | differential-datalog | |
---|---|---|
20 | 22 | |
2,238 | 1,338 | |
- | 0.4% | |
9.3 | 0.0 | |
about 3 years ago | 10 months ago | |
Rust | Java | |
Apache License 2.0 | MIT License |
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
- Ballista: Distributed compute platform implemented in Rust using Apache Arrow.
-
Open source contributions for a Data Engineer?
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?
https://github.com/ballista-compute/ballista/blob/main/rust/executor/src/flight_service.rs#L193-L228
-
I wrote one of the fastest DataFrame libraries
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
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?
https://github.com/ballista-compute/ballista is also a cool project worth checking out.
-
Julia: A Post-Mortem
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
-
Why isn't differential dataflow more popular?
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.
differential-datalog
- DDlog: A programming language for incremental computation
-
Feldera – a more performant streaming database based on Z-sets
Hi,
> I wonder if it lives up to the hype.
We do think so! (disclaimer: I'm a co-founder at Feldera)
To give some more background: We are co-designing/trialing feldera with several industry/enterprise partners from different domains. Our core team also built differential datalog (https://github.com/vmware/differential-datalog) in the past. And while ddlog is used quite successfully in products today, we believe the many lessons we learned with ddlog will help us to build an even better continuous analytics platform. FYI our code is open-source at https://github.com/feldera/feldera if you'd like to try it out.
Also feel free to join our community slack channel (https://www.feldera.com/slack/) if you have more questions.
-
Why Are There No Relational DBMSs? [pdf]
The relational model (and generally working at the level of sets/collections, instead of the level of individual values/objects) actually makes it easier to have this kind of incremental computation in a consistent way, I think.
There's a bunch of work being done on making relational systems work this way. Some interesting reading:
- https://www.scattered-thoughts.net/writing/an-opinionated-ma...
- https://materialize.com/ which is built on https://timelydataflow.github.io/differential-dataflow/, which has a lot of research behind it
- Which also can be a compilation target for Datalog: https://github.com/vmware/differential-datalog
- Some prototype work on building UI systems in exactly the way you describe using a relational approach: https://riffle.systems/essays/prelude/ (and HN discussion: https://news.ycombinator.com/item?id=30530120)
(There's a lot more too -- I have a hobby interest in this space, so I have a small collection of links)
-
Differential Datalog: a programming language for incremental computation
Tutorial which I didn’t see linked in the README: https://github.com/vmware/differential-datalog/blob/master/d...
-
Show HN: Cozo – new Graph DB with Datalog, embedded like SQLite, written in Rust
This is amazing!
Have you looked at differential-datalog? It's rust-based, maintained by VMWare, and has a very rich, well-typed Datalog language. differential-datalog is in-memory only right now, but could be ideal to integrate your graph as a datastore or disk spill cache.
https://github.com/vmware/differential-datalog
-
Help wanted!
Sort of related, in my mind at least, is differential dataflow, e.g. https://github.com/vmware/differential-datalog
-
Datalog in JavaScript
It’s fascinating to see so many different parties converging on Datalog for reactive apps & UI.
- There are several such talks at https://www.hytradboi.com/ (happening this Friday)
- Roam Research and its clones Athens, Logseq, use Datascript / ClojureScript https://github.com/tonsky/datascript
- differential-datalog isn’t an end-to-end system, but is highly optimized for quick reactivity https://github.com/vmware/differential-datalog
- Datalog UI is a Typescript port of some of differential-datalog’s ideas https://datalogui.dev/
-
Call for Help - Open Source Datom/EAV/Fact database in Rust.
Rust related https://github.com/vmware/differential-datalog
-
Anything like Svelte/Jetpack Compose for Haskell?
Actually, that makes me wonder whether or not differential datalog falls under that umbrella, and if it could be applied in the same way Compose is.
What are some alternatives?
spark-rapids - Spark RAPIDS plugin - accelerate Apache Spark with GPUs
scryer-prolog - A modern Prolog implementation written mostly in Rust.
differential-dataflow - An implementation of differential dataflow using timely dataflow on Rust.
timely-dataflow - A modular implementation of timely dataflow in Rust
delta-rs - A native Rust library for Delta Lake, with bindings into Python
materialize - The data warehouse for operational workloads.
dagster - An orchestration platform for the development, production, and observation of data assets.
Prefect - The easiest way to build, run, and monitor data pipelines at scale.
datalevin - A simple, fast and versatile Datalog database
roapi - Create full-fledged APIs for slowly moving datasets without writing a single line of code.
logica - Logica is a logic programming language that compiles to SQL. It runs on Google BigQuery, PostgreSQL and SQLite.