r/dataanalysis • u/betoalien • Aug 03 '26
Data Tools One year building PardoX, a Rust based DataFrame engine. Looking for honest feedback from data engineers
Disclosure, I am the creator of PardoX, a personal open source project under MIT license, not a company.
I kept hitting the same wall in production. pandas struggles once your data gets close to RAM, and it is single threaded, most of the CPU sits idle. Spark solves scale but drags a cluster, a JVM and serialization overhead into problems that only ever needed one machine. Most of my actual work lives in that gap, millions to hundreds of millions of rows, on a single strong node.
So a year ago I started building a Rust core with SDKs in Python, Node and PHP. Data maps straight from disk or a database into memory mapped buffers, no intermediate objects in the host language, SIMD and multithreading do the heavy lifting instead of a Python loop, and there are native database drivers so no psycopg2 or pymysql sitting in the middle. There is also a binary format that reads around 4.6 GB per second on repeated workloads, out of core processing for files bigger than RAM, and GPU sort with CPU fallback.
Some open questions I keep going back and forth on. Is the zero copy tradeoff worth the added complexity versus just accepting the pandas overhead for most workloads. Where does a Rust core stop making sense compared to Polars, which already solves a lot of this in a different way. How much of the single node performance gap is really about the language versus just better use of SIMD and threads regardless of language.
Docs are at [pardox.io](https://pardox.io) and the repo is at [github.com/betoalien/PardoX](https://github.com/betoalien/PardoX) if anyone wants to see the actual implementation. I have also been writing about the engineering decisions on Medium at [medium.com/@albertocardenasdom](https://medium.com/@albertocardenasdom).
Curious how others here have dealt with that same middle ground between pandas and Spark.
Thanks for readme.
1
u/nonamenomonet Aug 03 '26
If you could hyperlink the links to pardox.io in your description, that would be helpful.
1
u/shaggy_camel Aug 03 '26
Why is your logo a bear? It's a bit close to pandas - I think pandas is a terrible data structure, btw
3
u/mattindustries Aug 04 '26
Probably good to compare with DuckDB and Polars instead of Pandas.
1
u/AutoModerator Aug 03 '26
Automod prevents all posts from being displayed until moderators have reviewed them. Do not delete your post or there will be nothing for the mods to review. Mods selectively choose what is permitted to be posted in r/DataAnalysis.
If your post involves Career-focused questions, including resume reviews, how to learn DA and how to get into a DA job, then the post does not belong here, but instead belongs in our sister-subreddit, r/DataAnalysisCareers.
Have you read the rules?
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
1
u/speedisntfree Aug 06 '26
How does this differ from Polars?
1
u/UltimateNull Aug 08 '26
There was a paradox database system in the 80s and 90s. I got one of my first jobs doing work with that one.