Skip to main content

Fast CSV parsing for Python via C + SIMD

Project description

fastCSV

The fastest CSV parser for Python. Written in C with AVX2 SIMD acceleration, memory-mapped I/O, and zero-copy columnar NumPy output.

Benchmarks

File fastcsv pandas polars
1M rows mixed 0.053s 1.086s 0.034s
100k rows wide 0.027s 0.380s 0.033s
500k rows str 0.020s 0.935s 0.015s

Hardware: AMD Ryzen 5 7235HS

Installation

pip install fastcsv-python

Usage

import fastcsv

# Returns dict of column_name -> numpy.ndarray
result = fastcsv.read_csv("data.csv")
result = fastcsv.read_csv("data.csv", delimiter=",", has_header=True, error_mode="strict")

# Streaming — constant memory regardless of file size
for chunk in fastcsv.reader("data.csv", chunk_size=10_000):
    process(chunk)

Options

Parameter Default Description
delimiter "," Field separator. Any single character.
has_header True Treat first row as column names.
error_mode "strict" "strict" / "skip" / "replace"
chunk_size 10000 Rows per chunk for reader().

How it's fast

  • mmap I/O — the OS pages in only what is needed. No read() syscalls.
  • AVX2 SIMD — scans 32 bytes per cycle to find delimiters. Falls back to SSE4.2 (16 bytes) or scalar automatically.
  • Zero-copy output — int and float columns are handed to NumPy directly from the C buffer. No data is copied.
  • Single-pass type inference — column types resolved in one pass, never re-scanned.
  • GIL released — the entire parse phase runs without the GIL. Safe for multi-threaded use.

Error recovery

  • strict — raises ValueError on any RFC 4180 violation.
  • skip — silently drops malformed rows.
  • replace — replaces malformed fields with empty string.

Building from source

pip install numpy
pip install -e .
make test-all

License

MIT 904c2c43-028b-4195-83f8-cd7f0dcb5d2b

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastcsv_python-0.1.0.tar.gz (30.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

fastcsv_python-0.1.0-cp313-cp313-win_amd64.whl (24.2 kB view details)

Uploaded CPython 3.13Windows x86-64

fastcsv_python-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (115.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

fastcsv_python-0.1.0-cp313-cp313-macosx_11_0_arm64.whl (22.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

fastcsv_python-0.1.0-cp312-cp312-win_amd64.whl (24.2 kB view details)

Uploaded CPython 3.12Windows x86-64

fastcsv_python-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (115.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

fastcsv_python-0.1.0-cp312-cp312-macosx_11_0_arm64.whl (22.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

fastcsv_python-0.1.0-cp311-cp311-win_amd64.whl (24.1 kB view details)

Uploaded CPython 3.11Windows x86-64

fastcsv_python-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (114.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

fastcsv_python-0.1.0-cp311-cp311-macosx_11_0_arm64.whl (22.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

fastcsv_python-0.1.0-cp310-cp310-win_amd64.whl (24.1 kB view details)

Uploaded CPython 3.10Windows x86-64

fastcsv_python-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (113.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

fastcsv_python-0.1.0-cp310-cp310-macosx_11_0_arm64.whl (22.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

fastcsv_python-0.1.0-cp39-cp39-win_amd64.whl (24.1 kB view details)

Uploaded CPython 3.9Windows x86-64

fastcsv_python-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (113.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

fastcsv_python-0.1.0-cp39-cp39-macosx_11_0_arm64.whl (22.0 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

fastcsv_python-0.1.0-cp38-cp38-win_amd64.whl (24.0 kB view details)

Uploaded CPython 3.8Windows x86-64

fastcsv_python-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (115.7 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

fastcsv_python-0.1.0-cp38-cp38-macosx_11_0_arm64.whl (21.7 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

File details

Details for the file fastcsv_python-0.1.0.tar.gz.

File metadata

  • Download URL: fastcsv_python-0.1.0.tar.gz
  • Upload date:
  • Size: 30.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fastcsv_python-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3c64ea4150887a0607fa3bebb2d00a13a18161d24cea3970639153086c6a1546
MD5 29bfd420e39609efe6ce3e1679756d45
BLAKE2b-256 2d763c124643cfe3f28aa39d711adf8dfa3bd4bb4bae4854753533a464c1299e

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastcsv_python-0.1.0.tar.gz:

Publisher: publish.yml on LikhinMN/fastCSV

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastcsv_python-0.1.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for fastcsv_python-0.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f09c8b3d5820c23dd09eef81e801cf963e2fafd733c1f28fe9fbd5c3eecad7ac
MD5 f29f983fb2868d5d75e817265dd099ab
BLAKE2b-256 376b2cee442c057275009e98221503cda77f8489e7f5d820120f39cafb4d3aa2

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastcsv_python-0.1.0-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on LikhinMN/fastCSV

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastcsv_python-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fastcsv_python-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7656b698bb7b964752b5920808a9fd83b7e96b39edec602d895f55365d58f89b
MD5 984382f4b0e18b5e81e06659102addf1
BLAKE2b-256 97eac53ab895a0e5b2b8636872a5fb20682fee3842b384a2ac480e49b773d597

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastcsv_python-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on LikhinMN/fastCSV

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastcsv_python-0.1.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fastcsv_python-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d435e4aa057ce0f53213e15f3db3834c9ee560a59039aac9992e4de91706d3de
MD5 ae878a2a83fde9402dd380b4385fbfcf
BLAKE2b-256 00c1bc7992b3a52fb19f490e852415e4a46746f444ae2ad69cf3c776a0586a2d

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastcsv_python-0.1.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on LikhinMN/fastCSV

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastcsv_python-0.1.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for fastcsv_python-0.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0abaf6c2bd2d5dd873d1744f064cf401178a5f5071c61d362ea801e0128fe324
MD5 016739fab6560fbd4bf61d766cecdec4
BLAKE2b-256 e941cf6331d075a76bdeac6ee5c8c17b3a073f3ffc23b34cec2f4f4a68b1009c

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastcsv_python-0.1.0-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on LikhinMN/fastCSV

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastcsv_python-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fastcsv_python-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f37a8169cea3bfc9fafe67dc6b6fa402bdf0c87cc0cf7e250dd9d72e8d248e5c
MD5 54878fecd43bb05fd71eba65fb2171dd
BLAKE2b-256 f9a9496599bbf59e5e306a57bd30a1df21ecbfac15d5124fc68246d3eb33904b

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastcsv_python-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on LikhinMN/fastCSV

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastcsv_python-0.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fastcsv_python-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a24b2128884e719d8265b97fee58aeeb4025271d22edc91280c2d95c0b466569
MD5 e6205d480ee42786f06c42f421822c0e
BLAKE2b-256 9aaace4025d1832c63c94381884e298f57c58a949dde34528fd089d79677cdea

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastcsv_python-0.1.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on LikhinMN/fastCSV

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastcsv_python-0.1.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for fastcsv_python-0.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c396add0176dcbec95915a38ef709732de7e79a24ec70c5db886699d9805b819
MD5 86d13533103cebb26b8388fc39101fcb
BLAKE2b-256 d056b9ca6b24d5bb94aa6f73c4253ab64cab04f9db81f296b83b93a40e304ffe

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastcsv_python-0.1.0-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on LikhinMN/fastCSV

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastcsv_python-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fastcsv_python-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9e96b193f9b43a043a3b40cd4f1cfe1c781bf8ccecf0979baf5555895d4d4a2f
MD5 4cfe470adbeb4092332343060ee9cf34
BLAKE2b-256 ce393210f407f4e305e493d32a42b31f7bae20800c62c168307e089e40018272

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastcsv_python-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on LikhinMN/fastCSV

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastcsv_python-0.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fastcsv_python-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5736dd162046d8209b3d6569ae6a8ce1fc33312400fb446203d24d28c874475d
MD5 9116a7da00290353eb7d3d12648acf46
BLAKE2b-256 69e1614a62f736840ef37fe4a46b3109a03017bcead11ca0cdd231aa5edeed48

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastcsv_python-0.1.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on LikhinMN/fastCSV

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastcsv_python-0.1.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for fastcsv_python-0.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 33214da0d3c1b95a85d98a28c02924dff73034375cde0d1ea15b634813f34374
MD5 7fd943231bf049fc90737e41171c19ea
BLAKE2b-256 3f963ae5043aeab28a26e31e264cf9754b4b7541ac5c6763fe2fcddc5e0d1854

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastcsv_python-0.1.0-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on LikhinMN/fastCSV

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastcsv_python-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fastcsv_python-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 30316f22272c71ee6db43e97cbca0a545c9b2bf5811e39a0173d2fce632c48e5
MD5 ac45002bcb08e3b37df9004bb2e404df
BLAKE2b-256 8b0817e0b6ed50e51acb779d10a2454ece52090d02676e0a793043dbcb4d64d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastcsv_python-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on LikhinMN/fastCSV

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastcsv_python-0.1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fastcsv_python-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2eab16e018d295465a407dcf3341a9f84c4dc06c55c1f4018982897aedf3a9d7
MD5 e935ae772373880260ebea82e9a9faa2
BLAKE2b-256 39344f1beab424918485ac601748083374eb6e82aeab4ee075939b84f5494d28

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastcsv_python-0.1.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on LikhinMN/fastCSV

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastcsv_python-0.1.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for fastcsv_python-0.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 770d8859f2a30f665d488e9632d69557d7dece97c129d045058d5526ca2863cb
MD5 7b84423f2727a7a67549aebdc3b2d53e
BLAKE2b-256 9352189adae084818ea12dc897e5a1c15ec46a96e4702f2094ad44812c437c93

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastcsv_python-0.1.0-cp39-cp39-win_amd64.whl:

Publisher: publish.yml on LikhinMN/fastCSV

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastcsv_python-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fastcsv_python-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a48046bcd5243111b153270bdf4d60bbf4149d2dcec9bcac0522a9fe777e38cb
MD5 0f5d277ad8bc960b0bbdf1548a472289
BLAKE2b-256 91262cda675224c7a3ca0cd55104c58f78b97b808f40d2e9f0c99463c237fc26

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastcsv_python-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on LikhinMN/fastCSV

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastcsv_python-0.1.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fastcsv_python-0.1.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 58014c5fe692d4b765b869698d57ce830853db4757a7a33c434d1f97c030e83b
MD5 65696fbb764be2367cb8ffc727ce8358
BLAKE2b-256 9b1d7c816a9c6fbc6ebd2bc7e1791b774a346b988213a1c56675620670c8c67e

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastcsv_python-0.1.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: publish.yml on LikhinMN/fastCSV

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastcsv_python-0.1.0-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for fastcsv_python-0.1.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 0ee9fc018ca930bea53feb19a81e05c9631a285f552ca30e42cfcd212264d12a
MD5 b368df153f99f79083fcab5256566182
BLAKE2b-256 0e85f8c03cee5b3c13854c02ff4060cabdfe0dba2d24f2f3b889a233c129cab9

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastcsv_python-0.1.0-cp38-cp38-win_amd64.whl:

Publisher: publish.yml on LikhinMN/fastCSV

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastcsv_python-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for fastcsv_python-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8d6204d348c702f576fbfe0d65baf1ce754ff3881c99349fc1047b0531a701f9
MD5 6a5fe35c7a6ba74e535766e0c6f55d18
BLAKE2b-256 0383df447b39296766d453206ec53ec6f6406c609dac0164ae680503474f1ecf

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastcsv_python-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on LikhinMN/fastCSV

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastcsv_python-0.1.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fastcsv_python-0.1.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7578abe8c573ba9421e05ffafda62d7d01bcdb8c2c6699aab0803cf40be4e9b4
MD5 96dd0c7a3e162db9c5e5a20877ae09a2
BLAKE2b-256 132d5f8933d5fe956587ecef9a1f2e0072ec4d785b6624a81f2ec2ba66fe3fd3

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastcsv_python-0.1.0-cp38-cp38-macosx_11_0_arm64.whl:

Publisher: publish.yml on LikhinMN/fastCSV

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page