Skip to main content

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


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

unchecked_io-0.1.7-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

unchecked_io-0.1.7-cp314-cp314-win_amd64.whl (3.1 MB view details)

Uploaded CPython 3.14Windows x86-64

unchecked_io-0.1.7-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

unchecked_io-0.1.7-cp314-cp314-macosx_10_12_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

unchecked_io-0.1.7-cp313-cp313-win_amd64.whl (3.1 MB view details)

Uploaded CPython 3.13Windows x86-64

unchecked_io-0.1.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

unchecked_io-0.1.7-cp313-cp313-macosx_10_12_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

unchecked_io-0.1.7-cp312-cp312-win_amd64.whl (3.1 MB view details)

Uploaded CPython 3.12Windows x86-64

unchecked_io-0.1.7-cp312-cp312-manylinux_2_34_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

unchecked_io-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

unchecked_io-0.1.7-cp312-cp312-macosx_10_12_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

unchecked_io-0.1.7-cp311-cp311-win_amd64.whl (3.1 MB view details)

Uploaded CPython 3.11Windows x86-64

unchecked_io-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

unchecked_io-0.1.7-cp311-cp311-macosx_10_12_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

unchecked_io-0.1.7-cp310-cp310-win_amd64.whl (3.1 MB view details)

Uploaded CPython 3.10Windows x86-64

unchecked_io-0.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

unchecked_io-0.1.7-cp39-cp39-win_amd64.whl (3.1 MB view details)

Uploaded CPython 3.9Windows x86-64

unchecked_io-0.1.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

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

File hashes

Hashes for unchecked_io-0.1.7-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1512c88b5d4c4dccd24c4f5eaa22af68c90323c3c00fb629e37f98f6da271b85
MD5 fb77cf6d81eac52f48625dc094c6c25d
BLAKE2b-256 5e1a0b4c832145c3f4e637be69bc467081e1ecad5aeef44b71b33e7918e9dda4

See more details on using hashes here.

File details

Details for the file unchecked_io-0.1.7-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for unchecked_io-0.1.7-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 3c117f80e67d3659a7033d60f88ca9d49dc209060fe39167909f32ee966dcd0f
MD5 e50130ff378ff1d486d6694b5133611d
BLAKE2b-256 e30790196da8cd07fd711bcf58cf2fad5f352c4782f7f56d191699bbac0981b4

See more details on using hashes here.

File details

Details for the file unchecked_io-0.1.7-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for unchecked_io-0.1.7-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 67e5f5c3f558c99d39e6e0cc06ba30161feab701d3e76f6a68d188a498ca9d9f
MD5 0211c481ba953114f3c910c9136df73a
BLAKE2b-256 2df220295166f0fd23869d966e0476d301e7822b4eabdb9fbbb58c98d79733b4

See more details on using hashes here.

File details

Details for the file unchecked_io-0.1.7-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for unchecked_io-0.1.7-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 138c93f7bbda6a2ac42426c91ad445d0130327cf63925517eccf97750fe0d9fa
MD5 6361d0aed9c1c042d938efd4740a388e
BLAKE2b-256 c82965a2f4e8d3985fee92c9f028bc2f22849d80afb67477d3b240ca281cc483

See more details on using hashes here.

File details

Details for the file unchecked_io-0.1.7-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for unchecked_io-0.1.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 607ced1b981e7d5476bf42e705ee1472eb5e701fc2d8cfba0e765ca14a4d589c
MD5 776e8da9f2b055f1f7cf4782f9d5f1ca
BLAKE2b-256 5fcfbfd28e81fcd2bd8cb45105cb5d13ff2cfecbf5b53e0738fee8ff1ecdc11b

See more details on using hashes here.

File details

Details for the file unchecked_io-0.1.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for unchecked_io-0.1.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ee6f7b9f63c6d7eed15eeaf938821cacc25ddbcccb7fb274289bfda7c54cce4f
MD5 3fcbe59f22f02cdbcf01a1d004277c0e
BLAKE2b-256 b647c25c64538b19870ac2f4cdaadf61bc37154a86645ec09c900adcb5d0601f

See more details on using hashes here.

File details

Details for the file unchecked_io-0.1.7-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for unchecked_io-0.1.7-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8f992a98f806f57c3b7f8e184f6f427af3b4e9420d07b608eb53dc51c181a89b
MD5 63e17027898774f387371b0fa5e366cd
BLAKE2b-256 1a4eb94425d376d4b42afa813059347be9dce7f6459a82496f05657a433996b0

See more details on using hashes here.

File details

Details for the file unchecked_io-0.1.7-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for unchecked_io-0.1.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d6117c0b21d8d8202044793619ccc522fcb1336a31dde91dc9b0c454aef212d2
MD5 7b6097f4f00c73ca6e392ed0931a8fb2
BLAKE2b-256 10dfcc9c15145ee3aa07310b9b4c7faeeaec1bc1df35e0891ba138e48380c8d1

See more details on using hashes here.

File details

Details for the file unchecked_io-0.1.7-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for unchecked_io-0.1.7-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 fa1ed03364b75aa87ed643229523dad7926ef35772ac29cd0f1a441596856861
MD5 6c5cc6a161fdb773990c8efaa2ce4a27
BLAKE2b-256 ca54cf0e175ad2f4665fcacb8fdbdc94a11dbea61211536b39bbbb7feb42cd3f

See more details on using hashes here.

File details

Details for the file unchecked_io-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for unchecked_io-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9975b9b745bb13512930353299f9364a289ce3ee4f38dbe8b81640a0c35f595b
MD5 18073ed52c1b6347dcb088d57db0f313
BLAKE2b-256 7fa36867a787d39654035190753f955a0ea1774b553d89899c0fbb8351f67b1e

See more details on using hashes here.

File details

Details for the file unchecked_io-0.1.7-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for unchecked_io-0.1.7-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 be011bab05d9b6d27a35eaef7be104812914ed5ad4eab1f93f66dc8fed53baed
MD5 22d2459618b91525a2a37da6dc416bbd
BLAKE2b-256 1b2a620edee5d172ee39f2b3e45c02b04265560621d20241f56adccaa03338b2

See more details on using hashes here.

File details

Details for the file unchecked_io-0.1.7-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for unchecked_io-0.1.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b82056364f878b4cd5e4e35dcbe94808398f188cabbd9efd9d1ad6eb6edff16e
MD5 6da1c04d5cb04fffba9adf7313f6e7fd
BLAKE2b-256 09014242d5e1fc958456abf687af921a56c95515bc48188a07f4a88fb52112f3

See more details on using hashes here.

File details

Details for the file unchecked_io-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for unchecked_io-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b2414f20174c5d260b6743b7036371f3e28f1979d31deedff2dc26ac716b0512
MD5 73fb00b57af327fe21daffad1f35cee4
BLAKE2b-256 29bb25709ca3c9a3e577058d7d18043520c278a2ba8466f6648e43bb65addfd4

See more details on using hashes here.

File details

Details for the file unchecked_io-0.1.7-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for unchecked_io-0.1.7-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5172a3b0428c175730a97ed18194d0d047dfd0109757acbbb286e2dcafff8578
MD5 57b3d0ea5f05458034dc1688eda8be21
BLAKE2b-256 d906f7b91b6a3ee1f8306020ad984bec2d692b1706b1204aa48e9f02648d9846

See more details on using hashes here.

File details

Details for the file unchecked_io-0.1.7-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for unchecked_io-0.1.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 061fa413de4323754109f8a282b5c338ba365ee27a2c7be5646f737112c81a59
MD5 45ce44635476427fdccc2599c05c6e44
BLAKE2b-256 7d02c4444b4271c40741fb03721439a95fc8bdd0ae5bdfcd1a8aed3a0e39164c

See more details on using hashes here.

File details

Details for the file unchecked_io-0.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for unchecked_io-0.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cf683c997d0e0e6e598a4cbdb985a80e4110232ca1c093dd0e5dcba1f9d77711
MD5 2ab4770d3c227e7f790d4e5b159d603d
BLAKE2b-256 c33f170c2559e940a67542d64047b8ced658a18b64f4d1f447b03eac5a2a3ab4

See more details on using hashes here.

File details

Details for the file unchecked_io-0.1.7-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for unchecked_io-0.1.7-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 ec8b0d0808a3063f2d431691cac6d80cddd12eaa7d874429d8db7f222147a904
MD5 a269602afa8ab31cd0e555e50efe68c7
BLAKE2b-256 a57576f082c891f7ddc4a295bd6f99972a02690ae0a2fa775b06aaf5b6ee05c2

See more details on using hashes here.

File details

Details for the file unchecked_io-0.1.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for unchecked_io-0.1.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2ba34f58edb200f188ac95ffbc312c11dc67db08fe698970da025013faf79bc2
MD5 2c105c96f09013487d12e19964f4355b
BLAKE2b-256 d4b943b49d50798b720eec1e18f7f242618308ba1c0fc2dbb914cc27d29a936b

See more details on using hashes here.

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