The world's fastest, most dangerous PostgreSQL-to-Arrow loader.
Project description
UncheckedIO 🚀 The world's fastest, most dangerous PostgreSQL-to-Arrow loader. UncheckedIO is an opinionated, high-performance data connector designed for bulk-loading massive datasets (Terabytes+) from PostgreSQL into Python/Apache Arrow. It achieves extreme speed by skipping runtime schema validation and using a zero-copy streaming parser. ⚠️ WARNING: This library assumes you know what you are doing. If your config.yaml schema does not match your database schema, it will produce garbage data or crash. The "Unchecked" in the name is not a suggestion; it is a promise. Features 🚀 1.5x - 2x Faster than ConnectorX when Benchmarked on 20M+ row dataset in default Colab runtime. 🧵 Parallel Worker Pool: Automatically scales to available CPU cores. 🧠 Auto-Tuning: Dynamically calculates optimal partition sizes (blast_radius). 📉 Low Memory Footprint: Streaming parser with zero-copy string slicing. 🛠️ "Self-Healing" (Nullable): If a partition fails (e.g., network flake), it returns NULLs for that chunk instead of crashing the entire job. 🔬 Optional Profiling: Built-in integration with the Tracy Profiler for deep I/O analysis. Installation pip install unchecked-io
Quick Start Create a config.yaml file: connection_string: postgresql://user:password@localhost:5432/dbname
query MUST be a COPY ... TO STDOUT (FORMAT binary) command
query: > COPY (SELECT id, name, score, created_at FROM users) TO STDOUT (FORMAT binary) schema:
- column_name: id arrow_type: Int64
- column_name: name arrow_type: Utf8
- column_name: score arrow_type: Float32
- column_name: created_at arrow_type: Timestamp(Nanosecond, None)
Run it in Python: import unchecked_io
blast_radius=0 enables auto-tuning
arrow_table = unchecked_io.load_data_from_config("config.yaml", blast_radius=0)
Convert to Pandas (Zero-Copy)
df = unchecked_io.to_pandas_dataframe(arrow_table) print(df.head())
🔬 Profiling with Tracy UncheckedIO includes optional instrumentation for the Tracy Profiler to visualize I/O starvation and thread contention. This feature is DISABLED by default to prevent overhead and crashes in production environments (like Google Colab). How to Enable Profiling You must build the library from source with the profiling feature enabled. Install Rust & Maturin: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh pip install maturin
Build with Feature Flag:
This builds the wheel and installs it in your current venv
maturin develop --release --features profiling
Run Tracy (GUI): Download Tracy v0.11.1 (Must match protocol v0.11.x). Open Tracy.exe and click Connect. Run your Python script. You will see real-time thread timelines and "IO_WAIT_STARVATION" blocks. Configuration Reference Supported Types PostgreSQL Type Config arrow_type bigint / int8 Int64 integer / int4 Int32 double precision Float64 real / float4 Float32 text / varchar / uuid Utf8 boolean Boolean timestamp Timestamp(Nanosecond, None) date Date32
blast_radius Parameter 0: Auto-Tune (Recommended). Calculates partition size based on row count / (cores * 4).
0: Manual Override. Sets specific number of rows per partition. Use for fine-tuning on specific hardware. License Apache 2.0 Free for non-production use and production use.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file unchecked_io-0.1.7-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: unchecked_io-0.1.7-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 3.7 MB
- Tags: PyPy, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1512c88b5d4c4dccd24c4f5eaa22af68c90323c3c00fb629e37f98f6da271b85
|
|
| MD5 |
fb77cf6d81eac52f48625dc094c6c25d
|
|
| BLAKE2b-256 |
5e1a0b4c832145c3f4e637be69bc467081e1ecad5aeef44b71b33e7918e9dda4
|
File details
Details for the file unchecked_io-0.1.7-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: unchecked_io-0.1.7-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 3.1 MB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c117f80e67d3659a7033d60f88ca9d49dc209060fe39167909f32ee966dcd0f
|
|
| MD5 |
e50130ff378ff1d486d6694b5133611d
|
|
| BLAKE2b-256 |
e30790196da8cd07fd711bcf58cf2fad5f352c4782f7f56d191699bbac0981b4
|
File details
Details for the file unchecked_io-0.1.7-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: unchecked_io-0.1.7-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 3.7 MB
- Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67e5f5c3f558c99d39e6e0cc06ba30161feab701d3e76f6a68d188a498ca9d9f
|
|
| MD5 |
0211c481ba953114f3c910c9136df73a
|
|
| BLAKE2b-256 |
2df220295166f0fd23869d966e0476d301e7822b4eabdb9fbbb58c98d79733b4
|
File details
Details for the file unchecked_io-0.1.7-cp314-cp314-macosx_10_12_x86_64.whl.
File metadata
- Download URL: unchecked_io-0.1.7-cp314-cp314-macosx_10_12_x86_64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.14, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
138c93f7bbda6a2ac42426c91ad445d0130327cf63925517eccf97750fe0d9fa
|
|
| MD5 |
6361d0aed9c1c042d938efd4740a388e
|
|
| BLAKE2b-256 |
c82965a2f4e8d3985fee92c9f028bc2f22849d80afb67477d3b240ca281cc483
|
File details
Details for the file unchecked_io-0.1.7-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: unchecked_io-0.1.7-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 3.1 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
607ced1b981e7d5476bf42e705ee1472eb5e701fc2d8cfba0e765ca14a4d589c
|
|
| MD5 |
776e8da9f2b055f1f7cf4782f9d5f1ca
|
|
| BLAKE2b-256 |
5fcfbfd28e81fcd2bd8cb45105cb5d13ff2cfecbf5b53e0738fee8ff1ecdc11b
|
File details
Details for the file unchecked_io-0.1.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: unchecked_io-0.1.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 3.7 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee6f7b9f63c6d7eed15eeaf938821cacc25ddbcccb7fb274289bfda7c54cce4f
|
|
| MD5 |
3fcbe59f22f02cdbcf01a1d004277c0e
|
|
| BLAKE2b-256 |
b647c25c64538b19870ac2f4cdaadf61bc37154a86645ec09c900adcb5d0601f
|
File details
Details for the file unchecked_io-0.1.7-cp313-cp313-macosx_10_12_x86_64.whl.
File metadata
- Download URL: unchecked_io-0.1.7-cp313-cp313-macosx_10_12_x86_64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.13, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f992a98f806f57c3b7f8e184f6f427af3b4e9420d07b608eb53dc51c181a89b
|
|
| MD5 |
63e17027898774f387371b0fa5e366cd
|
|
| BLAKE2b-256 |
1a4eb94425d376d4b42afa813059347be9dce7f6459a82496f05657a433996b0
|
File details
Details for the file unchecked_io-0.1.7-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: unchecked_io-0.1.7-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 3.1 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6117c0b21d8d8202044793619ccc522fcb1336a31dde91dc9b0c454aef212d2
|
|
| MD5 |
7b6097f4f00c73ca6e392ed0931a8fb2
|
|
| BLAKE2b-256 |
10dfcc9c15145ee3aa07310b9b4c7faeeaec1bc1df35e0891ba138e48380c8d1
|
File details
Details for the file unchecked_io-0.1.7-cp312-cp312-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: unchecked_io-0.1.7-cp312-cp312-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 3.7 MB
- Tags: CPython 3.12, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa1ed03364b75aa87ed643229523dad7926ef35772ac29cd0f1a441596856861
|
|
| MD5 |
6c5cc6a161fdb773990c8efaa2ce4a27
|
|
| BLAKE2b-256 |
ca54cf0e175ad2f4665fcacb8fdbdc94a11dbea61211536b39bbbb7feb42cd3f
|
File details
Details for the file unchecked_io-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: unchecked_io-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 3.7 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9975b9b745bb13512930353299f9364a289ce3ee4f38dbe8b81640a0c35f595b
|
|
| MD5 |
18073ed52c1b6347dcb088d57db0f313
|
|
| BLAKE2b-256 |
7fa36867a787d39654035190753f955a0ea1774b553d89899c0fbb8351f67b1e
|
File details
Details for the file unchecked_io-0.1.7-cp312-cp312-macosx_10_12_x86_64.whl.
File metadata
- Download URL: unchecked_io-0.1.7-cp312-cp312-macosx_10_12_x86_64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.12, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be011bab05d9b6d27a35eaef7be104812914ed5ad4eab1f93f66dc8fed53baed
|
|
| MD5 |
22d2459618b91525a2a37da6dc416bbd
|
|
| BLAKE2b-256 |
1b2a620edee5d172ee39f2b3e45c02b04265560621d20241f56adccaa03338b2
|
File details
Details for the file unchecked_io-0.1.7-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: unchecked_io-0.1.7-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 3.1 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b82056364f878b4cd5e4e35dcbe94808398f188cabbd9efd9d1ad6eb6edff16e
|
|
| MD5 |
6da1c04d5cb04fffba9adf7313f6e7fd
|
|
| BLAKE2b-256 |
09014242d5e1fc958456abf687af921a56c95515bc48188a07f4a88fb52112f3
|
File details
Details for the file unchecked_io-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: unchecked_io-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 3.7 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2414f20174c5d260b6743b7036371f3e28f1979d31deedff2dc26ac716b0512
|
|
| MD5 |
73fb00b57af327fe21daffad1f35cee4
|
|
| BLAKE2b-256 |
29bb25709ca3c9a3e577058d7d18043520c278a2ba8466f6648e43bb65addfd4
|
File details
Details for the file unchecked_io-0.1.7-cp311-cp311-macosx_10_12_x86_64.whl.
File metadata
- Download URL: unchecked_io-0.1.7-cp311-cp311-macosx_10_12_x86_64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.11, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5172a3b0428c175730a97ed18194d0d047dfd0109757acbbb286e2dcafff8578
|
|
| MD5 |
57b3d0ea5f05458034dc1688eda8be21
|
|
| BLAKE2b-256 |
d906f7b91b6a3ee1f8306020ad984bec2d692b1706b1204aa48e9f02648d9846
|
File details
Details for the file unchecked_io-0.1.7-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: unchecked_io-0.1.7-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 3.1 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
061fa413de4323754109f8a282b5c338ba365ee27a2c7be5646f737112c81a59
|
|
| MD5 |
45ce44635476427fdccc2599c05c6e44
|
|
| BLAKE2b-256 |
7d02c4444b4271c40741fb03721439a95fc8bdd0ae5bdfcd1a8aed3a0e39164c
|
File details
Details for the file unchecked_io-0.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: unchecked_io-0.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 3.7 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf683c997d0e0e6e598a4cbdb985a80e4110232ca1c093dd0e5dcba1f9d77711
|
|
| MD5 |
2ab4770d3c227e7f790d4e5b159d603d
|
|
| BLAKE2b-256 |
c33f170c2559e940a67542d64047b8ced658a18b64f4d1f447b03eac5a2a3ab4
|
File details
Details for the file unchecked_io-0.1.7-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: unchecked_io-0.1.7-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 3.1 MB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec8b0d0808a3063f2d431691cac6d80cddd12eaa7d874429d8db7f222147a904
|
|
| MD5 |
a269602afa8ab31cd0e555e50efe68c7
|
|
| BLAKE2b-256 |
a57576f082c891f7ddc4a295bd6f99972a02690ae0a2fa775b06aaf5b6ee05c2
|
File details
Details for the file unchecked_io-0.1.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: unchecked_io-0.1.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 3.7 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ba34f58edb200f188ac95ffbc312c11dc67db08fe698970da025013faf79bc2
|
|
| MD5 |
2c105c96f09013487d12e19964f4355b
|
|
| BLAKE2b-256 |
d4b943b49d50798b720eec1e18f7f242618308ba1c0fc2dbb914cc27d29a936b
|