I got tired of Python spreadsheet tools being slow. So I built one with Rust.
For a while, every time I worked with XLSX files in Python, it felt like the same tradeoff:
Either the library was easy to use but slow on large files,
or fast but annoying to install,
or memory-heavy once the spreadsheets got real.
What finally clicked for me was that the problem wasn’t “Python can’t do this well.”
It was that most of the heavy lifting probably shouldn’t be happening in Python in the first place.
So I started building a spreadsheet library with a Rust core and a simple Python API.
The goal was boringly practical:
- stream rows instead of loading entire files into memory
- keep install simple
- support the spreadsheet features people actually need
- make it usable in normal Python workflows, including pandas
That turned into OpenSheet Core.
Right now it handles XLSX read/write, streaming, formulas, dates, styling, tables, data validation, sheet protection, and pandas support. The benchmark section in the repo also shows it beating openpyxl in the project’s own tests, especially on reads.
I’m still improving it, but I’d genuinely love feedback from people who work with spreadsheets in Python:
What would make you switch from your current setup?
What’s missing?
What would break this for your use case?
Repo is here:
github.com/0xNadr/opensheet-core
Posted Apr 7, 2026, 11:27 AM UTC