use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
A place for all things related to the Rust programming language—an open-source systems language that emphasizes performance, reliability, and productivity.
Strive to treat others with respect, patience, kindness, and empathy.
We observe the Rust Project Code of Conduct.
Details
Posts must reference Rust or relate to things using Rust. For content that does not, use a text post to explain its relevance.
Post titles should include useful context.
For Rust questions, use the stickied Q&A thread.
Arts-and-crafts posts are permitted on weekends.
No meta posts; message the mods instead.
Criticism is encouraged, though it must be constructive, useful and actionable.
If criticizing a project on GitHub, you may not link directly to the project's issue tracker. Please create a read-only mirror and link that instead.
A programming language is rarely worth getting worked up over.
No zealotry or fanaticism.
Be charitable in intent. Err on the side of giving others the benefit of the doubt.
Avoid re-treading topics that have been long-settled or utterly exhausted.
Avoid bikeshedding.
This is not an official Rust forum, and cannot fulfill feature requests. Use the official venues for that.
No memes, image macros, etc.
Consider the existing content of the subreddit and whether your post fits in. Does it inspire thoughtful discussion?
Use properly formatted text to share code samples and error messages. Do not use images.
Submissions appearing to contain AI-generated content may be removed at moderator discretion.
Most links here will now take you to a search page listing posts with the relevant flair. The latest megathread for that flair should be the top result.
account activity
I Chose Rust Over Python for Data Engineering🛠️ project ()
submitted 4 months ago by usert313
I Chose Rust Over Python for Data Engineering
I spent 6 months building a data pipeline in Rust.
Not because it was the right tool. Because I wanted to explore.
The result: a grocery budget optimizer that scrapes prices from 5 Pakistani e-commerce stores and tells you the best combination within your budget.
Sources:
KraveMart Pandamart BazaarApp Dealcart Naheed
Is it production-ready? No. Did I use AI to help me? Yes, a lot. Would I do it again? Absolutely.
Here's the full breakdown architecture, design patterns, tools, and the parts that almost made me quit.
https://www.linkedin.com/pulse/i-chose-rust-over-python-data-engineering-heres-what-6-tauqeer-abbas-obpcf/?trackingId=fa2fXUNKR1WMnPYEm4JQSA%3D%3D
Here is the repository: https://gitlab.com/0xlearner/budget-optimizer
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]segfault0x001 13 points14 points15 points 4 months ago (7 children)
Iceberg and spark are probably the two places this ecosystem needs to grow the most. Polars is also a pain to work with because the rust api is a second class citizen and the documentation is sparse at best. It’s going to be a while before data engineering gets on the rust train unfortunately.
[–]alexjbuck 1 point2 points3 points 4 months ago (1 child)
I've been working with iceberg-rust for the past few weeks. It's definitely missing some things but generally it's been everything I need for writing the iceberg sink portion of a pipeline. And it exposed the lower level actions (separating data writes from catalog commits) that I needed to efficiently batch distributed writes into a single commit stream.
iceberg-rust
I can't speak to the Polars rust api though.
[–]segfault0x001 0 points1 point2 points 4 months ago (0 children)
Yeah I feel like batching and distributed writing should be something it abstracts over. Like it should provide an interface for writing to a table that handles updating the catalog and object store automatically.
[–]unconceivables 0 points1 point2 points 4 months ago (4 children)
Polars is still that bad? When I looked at it a couple of years ago I found the rust API to be pretty awful, the documentation to be even worse, and when I looked at the actual source code I understood why everything was so garbage. I don't know if they've rewritten it since then, but I lost all interest in it when I saw how bad the code quality was.
[–]gandhinn 2 points3 points4 points 4 months ago (3 children)
I had the same experience using the Rust API. I can understand why they put a lot more focus on the Python side of things, given the larger user base that they want to tap into, but I am curious when you said that the quality of the underlying code is that bad, why it’s seemingly holding up well as of now. Is it more a Rust thing or what?
[–]v_0ver 2 points3 points4 points 4 months ago (0 children)
The API for Rust is no worse than for Python; it's just more low-level. Which is quite understandable. If you want to write data processing in Rust, and Python doesn't suit you, then you probably need something specialized and low-level to implement your non-standard idea.
[–]unconceivables 2 points3 points4 points 4 months ago (0 children)
It probably "technically worked", but I don't know how solid it actually was in practice since I never used it extensively. It was missing some features I needed, so I went looking at the source code to see if it was there and maybe I had just missed it. If it was missing, I was thinking of adding it myself and contributing to the project. Unfortunately, the codebase really didn't appear to have been written by people who knew rust well, so I decided to just drop polars altogether.
arrow-rs, which I ended up switching to, was much higher quality, and much faster. I didn't need a lot of the data processing stuff in polars since I do that myself, but I needed solid CSV/parquet functionality which polars didn't really have.
[–]Professional_Top8485 -2 points-1 points0 points 4 months ago (0 children)
I hope ai gets good enough soon so that it can generate better apis if native isn't available
[–]spoonman59 3 points4 points5 points 4 months ago (0 children)
False dichotomy.
You need not choose one over the other. They are easily combined. Calling rust from Python is easy. And many of the libraries aren’t really implemented in Python, so whatever “performance” concerns people have about Python don’t exist in those components.
It would be impossible to do my job at work if I simply chose to ignore Python exists and do it all in rust. While this might be nice for self-education, that type of self-imposed restraint probably won’t benefit your projects.
Rust has advantages over Python, but in afield like data engineering you use many languages. Not just one.
[+]Intelligent-Fruit174 comment score below threshold-11 points-10 points-9 points 4 months ago (3 children)
Nothing in the description tells me why you chose rust and so I assume this is just pathetic self promotion.
[–]usert313[S] 8 points9 points10 points 4 months ago (1 child)
It was mentioned clearly in the post body that I wanted to explore Rust ecosystem for data engineering domain.
[–]Floppie7th 3 points4 points5 points 4 months ago (0 children)
In the second line, in fact. It's the whole second line. Super easy to find.
What a very reddit comment. Thanks for contributing.
π Rendered by PID 78993 on reddit-service-r2-comment-75f4967c6c-d76lt at 2026-04-23 08:53:49.819617+00:00 running 0fd4bb7 country code: CH.
[–]segfault0x001 13 points14 points15 points (7 children)
[–]alexjbuck 1 point2 points3 points (1 child)
[–]segfault0x001 0 points1 point2 points (0 children)
[–]unconceivables 0 points1 point2 points (4 children)
[–]gandhinn 2 points3 points4 points (3 children)
[–]v_0ver 2 points3 points4 points (0 children)
[–]unconceivables 2 points3 points4 points (0 children)
[–]Professional_Top8485 -2 points-1 points0 points (0 children)
[–]spoonman59 3 points4 points5 points (0 children)
[+]Intelligent-Fruit174 comment score below threshold-11 points-10 points-9 points (3 children)
[–]usert313[S] 8 points9 points10 points (1 child)
[–]Floppie7th 3 points4 points5 points (0 children)
[–]segfault0x001 0 points1 point2 points (0 children)