bytewax
river
Our great sponsors
bytewax | river | |
---|---|---|
18 | 17 | |
1,144 | 4,775 | |
8.2% | 2.5% | |
9.8 | 9.1 | |
6 days ago | 1 day ago | |
Python | Python | |
Apache License 2.0 | BSD 3-clause "New" or "Revised" 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.
bytewax
- Building a streaming SQL engine with Arrow and DataFusion
-
Near Real Time Ingestion to DB using Python
You can probably use Python to solve your problem, there are many ways you can speed up your deserialization/flattening. I work on Bytewax (https://github.com/bytewax/bytewax) and I wouldn't mention it if it wasn't a good fit, but I think it's worth looking at here. It is a stream processor that makes it easy to scale, maintain order, track progress, and you just write native Python.
-
Stream processing framework for a new project in Python
Disclaimer: I work on Bytewax, but it feels like this could be a good fit and would save you some time looking around. If you need to do stateful operations (reduce, window, etc.) then you can use bytewax - https://github.com/bytewax/bytewax with pub/sub, but you would need to build a custom connector. There are some guides on how to do that - https://www.bytewax.io/blog/custom-input-connector.
- What are your favorite tools or components in the Kafka ecosystem?
-
A Python package for streaming synthetic data
This is great, definitely see the utility here. I have had to hack this together so many times while building streaming workflows with github.com/bytewax/bytewax and other tools.
-
Snowflake - what are the streaming capabilities it provides?
When low latency matters you should always consider an ETL approach rather than ELT, e.g. collect data in Kafka and process using Kafka Streams/Flink in Java or Quix Streams/Bytewax in Python, then sink it to Snowflake where you can handle non-critical workloads (as is the case for 99% of BI/analytics). This way you can choose the right path for your data depending on how quickly it needs to be served.
-
Sunday Daily Thread: What's everyone working on this week?
Working on how to use https://github.com/bytewax/bytewax to create embeddings in real-time for ML use cases. I want to make a small library for embedding pipelines, but still learning about vector dbs and the tradeoffs between the different solutions.
-
Arroyo: A distributed stream processing engine written in Rust
Project looks cool! Glad you open sourced it. It could use some comments in the code base to help contributors ;). I also like the datafusion usage, that is awesome. BTW I work on github.com/bytewax/bytewax, which is based on https://github.com/TimelyDataflow/timely-dataflow another Rust dataflow computation engine.
-
Launch HN: BuildFlow (YC W23) – The FastAPI of data pipelines
Cool, nice idea. Can you sub in different backend like bytewax (https://github.com/bytewax/bytewax) for stateful processing?
-
Kafka Stream Processing in Java or Scala
If you want to keep in your Python/SQL area of expertise and by all means I don't mean to promote not learning a new language, but just as an FYI. There are some non-Java/Scala tools between streaming databases like risingwave and materialize, streaming platforms like fluvio and redpanda, and stream processors like bytewax and faust.
river
-
🔍Underrated Open Source Projects You Should Know About 🧠
River is a Python library for online machine learning. Online machine learning can dynamically adapt to new patterns in the data, or when the data itself is generated as a function of time, e.g., stock price prediction, content personalization.
- Ask HN: What Underrated Open Source Project Deserves More Recognition?
-
Unexpected Expected Thriller: A Tale of Coding Curiosity
Today, I'm going to take you on a thrilling coding adventure inspired by a LinkedIn code snippet, where I tangled with FastAPI, River, Watchdog, and Tenacity. Ready? Buckle up!
-
Elevate Your Python Skills: Machine Learning Packages That Transformed My Journey as ML Engineer
Complimentary: river and skorch
-
What are your favorite tools or components in the Kafka ecosystem?
River - https://github.com/online-ml/river (Online machine learning, best used with Bytewax for Kafka integration)
-
Show HN: Want something better than k-means? Try BanditPAM
Hey, great work. Do you think this algorithm would be amenable to be done online? I'm the author of River (https://riverml.xyz) where we're looking for good online clustering algorithms.
-
Python's “Disappointing” Superpowers
If you don't know Rust, but know Python, you can install Python libraries written in Rust with pip. Like, pip install polars or pip install robyn. In this case you follow the two bottom links. But then you don't write your own libraries and stuff so.. I guess that's not what you want.
But, if you want to learn Rust, you probably wouldn't start out with pyo3. You first install Rust with https://rustup.rs/ and then check out the official book, and the book rust by example, that you can find here https://www.rust-lang.org/learn - and maybe write some code on the Rust playground https://play.rust-lang.org/ - then, you use pyo3 to build Python libraries in Rust, and then use maturin https://www.maturin.rs/ to build and publish them to Pypi.
But if you still prefer to begin with Rust by writing Python libraries (it's a valid strategy if you are very comfortable with working with multiple stacks), the Maturin link has a tutorial that setups a program that is half written in python, half written in Rust, https://www.maturin.rs/tutorial.html (well the pyo3 link I sent also has one too. You should refer to the documentation of both, because you will use the two together)
After learning Rust, the next step is looking for libraries that you could leverage to make Python programs ultra fast. Here https://github.com/rayon-rs/rayon is an obvious choice, see some examples from the Rust cookbook https://rust-lang-nursery.github.io/rust-cookbook/concurrenc... - when you create a parallel iterator, it will distribute the processing to many threads (by default, one per core). The rust cookbook, by the way, is a nice reference to see the most used crates (Rust libraries) in the Rust ecosystem.
Anyway there are some posts about pyo3 on the web, like this blog post https://boring-guy.sh/posts/river-rust/ (note: it uses an outdated version of pyo3, and doesn't seem to use maturin which is a newer tool). This post was written by the developers of https://github.com/online-ml/river - another Python library written in Rust
- [D] Is it possible to update random forest parameters with new data instead of retraining on all data?
-
If ChatGPT that could browse to the internet, what would you ask it to do?
Oh they definitely can be incrementally updated, there is just added complexity. Online learning has been used with more classical machine learning methods in real-time analytics for a while now. River is a library that handles that.
-
[D] Good online learning-to-rank models
We have both bandits and FTRL implemented in River (https://riverml.xyz) if that helps.
What are some alternatives?
timely-dataflow - A modular implementation of timely dataflow in Rust
alibi-detect - Algorithms for outlier, adversarial and drift detection
arroyo - Distributed stream processing engine in Rust
python-tidal - Python API for TIDAL music streaming service
2022-bytewax-redpanda-air-quality-monitoring
wayfire - A modular and extensible wayland compositor
django-unicorn - The magical reactive component framework for Django ✨
PySyft - Perform data science on data that remains in someone else's server
Django - The Web framework for perfectionists with deadlines.
edl - Inofficial Qualcomm Firehose / Sahara / Streaming / Diag Tools :)
Pyramid - Pyramid - A Python web framework
makinage - Stream Processing Made Easy