arroyo
bebop
arroyo | bebop | |
---|---|---|
13 | 28 | |
3,326 | 1,843 | |
3.2% | 2.8% | |
9.6 | 8.8 | |
7 days ago | about 1 month ago | |
Rust | C# | |
Apache License 2.0 | Apache License 2.0 |
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.
arroyo
- FLaNK AI Weekly 18 March 2024
- Arryo 0.8 released — streaming SQL engine
-
Query Engines: Push vs. Pull
Interesting - I looked into your code a bit. I found your window aggregation library [1]. You may be interested in looking into the Rust implementation of some of the research work I've been a part of [2].
In Flink, I believe the reason they need to implement their own backpressure system is that they multiplex TCP connections. That is, they have multiple logical streams flowing through a single TCP connection. If that's the case, you need to do some work to 1) detect which logical stream is the one that's blocking, and 2) don't block because other logical streams may be able to use the active TCP connection.
Thinking it through, I think what Flink's approach buys is not necessarily better performance, but better just a manageable number of connections. That is, imagine you have a process P1 with operators A, B and C. And then P2 has D, E, F. Now imagine that this is a shuffle, where A, B and C are fully connected to D, E and F. In my old system, you would have 9 TCP connections. In Flink, you will have 1.
[1] https://github.com/ArroyoSystems/arroyo/blob/master/arroyo-w...
- Arroyo
- Show HN: Arroyo – Write SQL on streaming data
- Release v0.3.0 · ArroyoSystems/arroyo - Stream Processing Engine
- Arroyo 0.2 released - Rust stream processing engine, now on Kubernetes
- Distributed stream processing engine written in Rust
- ArroyoSystems/arroyo: Arroyo is a distributed stream processing engine written in Rust
- Arroyo, a new open-source SQL stream processing engine written in Rust
bebop
- FLaNK AI Weekly 18 March 2024
- Fast, Typesafe Binary Serialization
- Bebop v3: a fast, modern replacement to Protocol Buffers
- Bebop introduces JSON-Over-Bebop for fast runtime type validation of raw JSON in JavaScript/TypeScript; faster than Zod and other alternatives
- Bebop introduces JSON-Over-Bebop for fast runtime type validation of raw JSON in Typescript; faster than Zod and other alternatives
- Bebop (Better Protocol Buffers) v2.7.0: watch mode, service streams, improved REPL, and compiler plugins RFC
What are some alternatives?
bytewax - Python Stream Processing
Protobuf - Protocol Buffers - Google's data interchange format
risingwave - SQL stream processing, analytics, and management. We decouple storage and compute to offer speedy bootstrapping, dynamic scaling, time-travel queries, and efficient joins.
Cap'n Proto - Cap'n Proto serialization/RPC system - core tools and C++ library
Benthos - Fancy stream processing made operationally mundane
FlatBuffers - FlatBuffers: Memory Efficient Serialization Library
cli - Railway CLI
rust_serialization_benchmark - Benchmarks for rust serialization frameworks
feldera - Feldera Continuous Analytics Platform
noVNC - VNC client web application
timely-dataflow - A modular implementation of timely dataflow in Rust
NoProto - Flexible, Fast & Compact Serialization with RPC