vroom-csv
High-performance CSV parser with SIMD acceleration for Python.
Features
- SIMD-accelerated parsing using Google Highway for portable vectorization
- Multi-threaded parsing for large files
- Automatic dialect detection (delimiter, quoting, line endings)
- Automatic type inference detects integers, floats, booleans, and strings
- Arrow PyCapsule interface for zero-copy interoperability with PyArrow, Polars, DuckDB
- Full type annotations with IDE autocomplete support
Installation
pip install vroom-csv
For Arrow interoperability:
pip install vroom-csv[arrow] # PyArrow support
pip install vroom-csv[polars] # Polars support
For development:
pip install vroom-csv[dev]
Quick Start
import vroom_csv
# Read a CSV file
table = vroom_csv.read_csv("data.csv")
print(f"Loaded {table.num_rows} rows, {table.num_columns} columns")
print(f"Columns: {table.column_names}")
# Access data
names = table.column("name")
first_row = table.row(0)
Arrow Interoperability
vroom-csv implements the Arrow PyCapsule interface for zero-copy data exchange:
PyArrow
import pyarrow as pa
import vroom_csv
table = vroom_csv.read_csv("data.csv")
arrow_table = pa.table(table) # Zero-copy conversion
# Now use PyArrow's features
arrow_table.to_pandas()
Polars
import polars as pl
import vroom_csv
table = vroom_csv.read_csv("data.csv")
df = pl.from_arrow(table) # Zero-copy conversion
# Now use Polars' features
df.filter(pl.col("age") > 30)
DuckDB
import duckdb
import vroom_csv
table = vroom_csv.read_csv("data.csv")
result = duckdb.query("SELECT * FROM table WHERE age > 30")
API Reference
read_csv(path, ...)
Read a CSV file and return a Table object.
read_csv(
path: str,
delimiter: str | None = None,
quote_char: str = '"',
has_header: bool = True,
skip_rows: int = 0,
n_rows: int | None = None,
usecols: list[str | int] | None = None,
dtype: dict[str, str] | None = None,
null_values: list[str] | None = None,
empty_is_null: bool = True,
encoding: str = "utf-8",
num_threads: int = 1,
) -> Table
Parameters:
path: Path to the CSV filedelimiter: Field delimiter (auto-detected if None)quote_char: Quote character for quoted fieldshas_header: Whether the first row contains column headersskip_rows: Number of data rows to skip after the headern_rows: Maximum number of rows to read (None = all)usecols: List of column names or indices to readdtype: Dict mapping column names to types ("string", "int", "float", "bool")null_values: List of strings to treat as null valuesempty_is_null: Whether empty fields are treated as nullencoding: File encoding (currently UTF-8 only)num_threads: Number of threads for parsing
detect_dialect(path)
Detect CSV dialect (delimiter, quoting, line endings).
dialect = vroom_csv.detect_dialect("data.csv")
print(dialect.delimiter) # ','
print(dialect.quote_char) # '"'
print(dialect.has_header) # True
print(dialect.confidence) # 0.95
Table
The Table class represents parsed CSV data.
Properties:
num_rows: Number of data rows (excluding header)num_columns: Number of columnscolumn_names: List of column names
Methods:
column(index_or_name): Get column data as listrow(index): Get row data as listhas_errors(): Check if any parse errors occurrederror_summary(): Get a summary of parse errorserrors(): Get list of parse error messages
Arrow PyCapsule Protocol:
__arrow_c_schema__(): Export schema via Arrow C Data Interface__arrow_c_stream__(): Export data via Arrow C Stream Interface
Examples
See the examples directory for Jupyter notebooks demonstrating:
- Getting Started - Basic usage
- Arrow Interoperability - PyArrow, Polars, DuckDB
Benchmarks
Run performance benchmarks against pandas, Polars, PyArrow, and DuckDB:
cd benchmarks
pip install pandas polars pyarrow duckdb
python benchmark_csv.py --sizes 1,10,100
See benchmarks/README.md for details.
License
MIT License - see LICENSE file in the repository root.
Metadata
Release files for vroom-csv 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vroom_csv-0.1.0.tar.gz | 45.6 kB | Details |
Built distributions (wheels)
Total release size: 6.1 MB
Release files / vroom_csv-0.1.0.tar.gz
| Download URL | vroom_csv-0.1.0.tar.gz |
|---|---|
| Size | 45.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dbd363add9941313f532f30a1f9eca852eb6443495d3fcc432e57dce196ffb35
|
|
BLAKE2b-256 checksum How to use checksums |
221c7ce8e7b6b21af0148d7e9874652e8b14191442d395eb9c70a23e77e1f434
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 12, 2026.
Transparency logRelease files / vroom_csv-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | vroom_csv-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 483.6 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
d74e2af9f59b2a812eaed4d2f3e04c3f5a92a1a9a3255b16400256682a4a6823
|
|
BLAKE2b-256 checksum How to use checksums |
f9f4a6f547f2c4292b51008a627c700578a3f4a76dcdb2c4dc6df5ad29f67329
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 12, 2026.
Transparency logRelease files / vroom_csv-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | vroom_csv-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 456.6 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
24c277174caf3f76dc11a5b515b364d7537dc5fbe58e25ffde9526fc015e372f
|
|
BLAKE2b-256 checksum How to use checksums |
7d0e641393ab6798052e14b53fd4270949adbfe7c791fa719582539eae1a4c12
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 12, 2026.
Transparency logRelease files / vroom_csv-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | vroom_csv-0.1.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 267.3 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
2ca6acd6a24e5c4c55e3acd5e4a5575a531e61c63703d193c2a06edba8b73fbe
|
|
BLAKE2b-256 checksum How to use checksums |
8359dd5b7dc1ad9284e68fb67f5b360783d53747e64f2fdc7c4ae66d111abc23
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 12, 2026.
Transparency logRelease files / vroom_csv-0.1.0-cp312-cp312-macosx_10_15_x86_64.whl
| Download URL | vroom_csv-0.1.0-cp312-cp312-macosx_10_15_x86_64.whl |
|---|---|
| Size | 299.2 kB |
| Tags | CPython 3.12 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
cd71fa0d777136eee7504a2fed7b51a3a6f5ae3d982461cc73671872370ba2a2
|
|
BLAKE2b-256 checksum How to use checksums |
dfd092c7c3411709e2aa933af0961ca493d249ee2f20620eff79e5afe65720b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 12, 2026.
Transparency logRelease files / vroom_csv-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | vroom_csv-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 484.8 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
3888774164194dbf398953ef38f10d9938d152f3366203322418dc785d49b5a6
|
|
BLAKE2b-256 checksum How to use checksums |
ecd05f6aaf535ded810c2b07a27ecfe9d2548b310671553f0e7c0b2a01b53c1f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 12, 2026.
Transparency logRelease files / vroom_csv-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | vroom_csv-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 457.6 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
401f3be4cf9159616b1eb97aa82dc0099fc0943c480aa62736acf17e67d4afc7
|
|
BLAKE2b-256 checksum How to use checksums |
d4b6e27cce598e54acc0c461ab6ff3f16ed3f146d364f16087d8f66fec38d7a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 12, 2026.
Transparency logRelease files / vroom_csv-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | vroom_csv-0.1.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 265.9 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
2b7ec9019900b37fc58f65b58131fea387c999e6bfc5cb28b3830708ac9edb2b
|
|
BLAKE2b-256 checksum How to use checksums |
114dce57551f6a46fa70dbd1108bedddbeb4c125b1e5657b71d9eccd06e71a66
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 12, 2026.
Transparency logRelease files / vroom_csv-0.1.0-cp311-cp311-macosx_10_15_x86_64.whl
| Download URL | vroom_csv-0.1.0-cp311-cp311-macosx_10_15_x86_64.whl |
|---|---|
| Size | 296.0 kB |
| Tags | CPython 3.11 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
82f83b0d4b53adb0f282a2d49d79865d645ef24c4b472a05a55e5285b92bcef9
|
|
BLAKE2b-256 checksum How to use checksums |
e81dde752ffc17739654a00e67710f8d10d0b2f788f5dbcc420dfeb2a3f44427
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 12, 2026.
Transparency logRelease files / vroom_csv-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | vroom_csv-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 483.3 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
e80a14e22da22516dec98560f57da3a91df3d728a72cbe4a3d4b090796b6d22e
|
|
BLAKE2b-256 checksum How to use checksums |
c5d3049b675453b25e8f6637676c260ce682c58fa4a2f33052bdace385a12adf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 12, 2026.
Transparency logRelease files / vroom_csv-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | vroom_csv-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 456.2 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
d3416a81c853633c29e773f3a7c01ccca1631316e98faf47a0fd43774a2f0c89
|
|
BLAKE2b-256 checksum How to use checksums |
1c609a7978c6bf26fd11f8f4a439f7e3432152eb3e16b38a63d67994308dddfc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 12, 2026.
Transparency logRelease files / vroom_csv-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | vroom_csv-0.1.0-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 264.2 kB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
391fa049ce5a92b72bc5f40cff5d6b23e63bcf033d6bd810faa0cdca2cdb38d9
|
|
BLAKE2b-256 checksum How to use checksums |
fec69b37513cd19f17d104276a2e4455401b7ddebd66d0943fee23d99474a5e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 12, 2026.
Transparency logRelease files / vroom_csv-0.1.0-cp310-cp310-macosx_10_15_x86_64.whl
| Download URL | vroom_csv-0.1.0-cp310-cp310-macosx_10_15_x86_64.whl |
|---|---|
| Size | 294.3 kB |
| Tags | CPython 3.10 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
0f512ccfb513390c10da474574775ac185efcb766f6216ed917a3f3168921c8b
|
|
BLAKE2b-256 checksum How to use checksums |
bec6dc5b4b3fc9e01c60ed292ad10dd61a9ed455b51b82ae5371ede95e85a9d8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 12, 2026.
Transparency logRelease files / vroom_csv-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | vroom_csv-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 483.8 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
1bbd1267eb037787db1be258ee3a80d9e582fe757485a32653e64fad4ae3e962
|
|
BLAKE2b-256 checksum How to use checksums |
7165adfff87078c56f7362011b647911b4dec63b04481fa3809e760b112d5831
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 12, 2026.
Transparency logRelease files / vroom_csv-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | vroom_csv-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 456.7 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
2a078dd5f0c0200cd40bbf11696d91995e32d0966bd1c978b250a79fc09bb1bf
|
|
BLAKE2b-256 checksum How to use checksums |
8b5161a2b530d2bf6aab08b47786173404544ae7ee334ad146f1a8d08537e989
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 12, 2026.
Transparency logRelease files / vroom_csv-0.1.0-cp39-cp39-macosx_11_0_arm64.whl
| Download URL | vroom_csv-0.1.0-cp39-cp39-macosx_11_0_arm64.whl |
|---|---|
| Size | 264.4 kB |
| Tags | CPython 3.9 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
8926bb5b08fe24d2287ee90fe1b7a03e4548369a520da170012dd6816f2e7a7f
|
|
BLAKE2b-256 checksum How to use checksums |
893a87e19c8aad2fbe29da3b87111c4f70b37ee7bed2300d5bc0c0ee925253c6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 12, 2026.
Transparency logRelease files / vroom_csv-0.1.0-cp39-cp39-macosx_10_15_x86_64.whl
| Download URL | vroom_csv-0.1.0-cp39-cp39-macosx_10_15_x86_64.whl |
|---|---|
| Size | 294.4 kB |
| Tags | CPython 3.9 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
4c0f36a89f619de7438db47cd569f71cbb2e78845744cf6c01d8365d2f2d8679
|
|
BLAKE2b-256 checksum How to use checksums |
b85985c5664ad1a53094b710c1a70709df150a459e07c0fe0aab9b223348406d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 12, 2026.
Transparency log