fastexcel
A fast excel file reader for Python, written in Rust
What it is and what it does
fastexcel is a Python Excel reader written in Rust that prioritizes speed and memory efficiency. It reads .xlsx and .xls files and exposes data via the Arrow PyCapsule Interface, allowing zero-copy handoff to Arrow-compatible libraries. The core package is lightweight with only typing-extensions as a runtime dependency; optional extras add integration with external dataframe libraries.
Typical use is to call read_excel() to open a file, load_sheet() or load_table() to select data, then access the raw Arrow interface via __arrow_c_schema__() and __arrow_c_array__(), or convert using library-specific methods. The PyCapsule design reduces dependency bloat when used with compatible consumers. Production-ready for Python; the free-threaded build remains experimental.
Use it for:
- Import Excel files into data pipelines where speed and memory efficiency are priorities.
- Load Excel tables (named ranges) directly for structured data extraction.
- Integrate Excel as a data source in applications requiring fast file reading.
- Replace slower Excel readers in performance-sensitive batch processing jobs.
- Access Excel data via the Arrow PyCapsule Interface for zero-copy integration.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Reads Excel files (.xlsx, .xls) into Python with zero-copy data exchange via the Arrow PyCapsule Interface, enabling direct use with compatible libraries without intermediate conversions.
Yes, if you need fast Excel reading and want to minimize dependencies. The package is production-ready, actively maintained, has no known vulnerabilities, and offers genuine performance gains over standard libraries. Install friction is moderate but manageable via prebuilt wheels. Not necessary if you rarely read Excel or have no performance constraints.
Install
fastexcel on PyPI
pip
pip install fastexceluv
uv add fastexcelpoetry
poetry add fastexcelInstalling fastexcel
Before you install
Medium install friction due to compiled Rust wheels, but prebuilt binaries cover common platforms (x86_64, ARM64, macOS, Linux, Windows). Active maintenance with last commit 2026-08-10. Single lightweight runtime dependency (typing-extensions).
License in practice
MIT license (permissive) allows commercial and private use with minimal restrictions—standard open-source terms with no copyleft obligations.
Quickstart
pip install fastexcel
import fastexcel
reader = fastexcel.read_excel("data.xlsx")
sheet = reader.load_sheet(0)
schema = sheet.__arrow_c_schema__()
array_data = sheet.__arrow_c_array__()
Requires Python 3.10 or later. Optional integration with external libraries (Pandas, Polars) requires their separate installation.
Verify before relying
- Whether free-threaded build stability has improved since the experimental designation in the description.
- Performance benchmarks comparing fastexcel to other Excel readers on typical workloads.
- Support for Excel features beyond basic cell data (formulas, formatting, merged cells).
- Actual zero-copy performance gains in real-world scenarios with different file sizes.
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 1 — typing-extensions |
| Maintenance | actively maintained — 102 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 3,262,951/month — #2,680 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: fastexcel-0.20.2-cp310-abi3-macosx_10_12_x86_64.whl; fastexcel-0.20.2-cp310-abi3-macosx_11_0_arm64.whl; fastexcel-0.20.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; fastexcel-0.20.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; fastexcel-0.20.2-cp310-abi3-musllinux_1_2_aarch64.whl; fastexcel-0.20.2-cp310-abi3-musllinux_1_2_x86_64.whl; fastexcel-0.20.2-cp310-abi3-win_amd64.whl; fastexcel-0.20.2-cp310-abi3-win_arm64.whl; fastexcel-0.20.2-cp314-cp314t-macosx_10_12_x86_64.whl; fastexcel-0.20.2-cp314-cp314t-macosx_11_0_arm64.whl; fastexcel-0.20.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; fastexcel-0.20.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; fastexcel-0.20.2-cp314-cp314t-musllinux_1_2_aarch64.whl; fastexcel-0.20.2-cp314-cp314t-musllinux_1_2_x86_64.whl; fastexcel-0.20.2-cp314-cp314t-win_amd64.whl
Tags
More Front-Ends packages
SQLAlchemy is a Python SQL toolkit and Object…
permissive · top 100 on PyPI
psycopg2-binarypsycopg2-binary is a PostgreSQL database…
copyleft · top 1,000 on PyPI
alembicAlembic generates and manages database schema…
permissive · top 1,000 on PyPI
weaviate-clientA Python client library for connecting to and…
permissive · top 1,000 on PyPI
databricks-sql-connectorA Python client library that connects to…
permissive · top 1,000 on PyPI
psycopgPsycopg 3 is a PostgreSQL database adapter for…
copyleft · top 1,000 on PyPI
python-calamineReads Excel and ODF spreadsheet files via a…
permissive · top 5,000 on PyPI
arrow-odbcReads data from ODBC data sources directly into…
permissive · top 15,000 on PyPI
xlrd3Reads data from Excel spreadsheet files (.xls…
permissive · top 15,000 on PyPI
connectorxConnectorX loads data from databases directly…
permissive · top 5,000 on PyPI
agate-excelAdds Excel file (xls and xlsx) read support to…
permissive · top 15,000 on PyPI
pylightxlReads and writes Microsoft Excel files (.xlsx,…
permissive · top 15,000 on PyPI
xlrdxlrd reads data and formatting information from…
permissive · top 1,000 on PyPI
polars-lts-cpupolars-lts-cpu is a CPU-optimized DataFrame…
permissive · top 15,000 on PyPI
excelrdExtracts data from Microsoft Excel spreadsheet…
permissive · top 15,000 on PyPI
feather-formatFeather-format provides a Python interface to…
permissive · top 15,000 on PyPI