Skip to main content

rypipe

Format-agnostic columnar ingestion engine. Rust core, Python bindings.

Parse row-oriented byte streams into Apache Arrow tables with parallel scheduling, memory-bounded execution, query pushdown, and a chainable pipeline API. Format adapters live in separate packages.

Python Rust License Tests Docs PyPI


What is rypipe

rypipe is a format- and source-agnostic ingestion framework that provides a common execution runtime for turning arbitrary record-oriented data sources into typed columnar data. It separates format-specific parsing from format-agnostic execution, so the same engine can parse XML, JSON, CSV, HTML, or any other row-oriented format once you provide a small adapter.

Add a new format by implementing two small traits: Splitter and RecordParser.

rypipe was originally developed as the ingestion engine for crxml, a Crystal Reports XML adapter. The engine's design, performance characteristics, and API were shaped by real-world production use with crxml. We use crxml as the primary example throughout the documentation because it demonstrates the full power of the framework: complex nested schemas, large files, parallel processing, and advanced filtering.

Quick start

pip install crxml
import crxml
from crxml import CrystalXMLSource, CastTypes, FilterRows, col

source = CrystalXMLSource("report.xml", row_tag="Details")

# Simple read
table = source.to_arrow()

# Pipeline with stages
result = (
    source
    | CastTypes({"Amount": float})
    | FilterRows(field="Status", op="==", value="Active")
    | crxml.to_arrow()
)

# Expression predicates fuse into the Rust parse loop too
result = (
    source
    | FilterRows((col("Amount") > 100) & (col("Status") == "Active"))
    | crxml.to_arrow()
)

# Convert to DataFrame
df = source.to_pandas()

# Constant-memory streaming
for batch in source.iter_record_batches(memory="64MiB"):
    writer.write_batch(batch)

Why rypipe

  • One runtime, many formats. XML, JSON, CSV, HTML, TSV, and any future format share the same parallel scheduler, memory-bounded executor, and pushdown infrastructure. An adapter is two small traits, not a full engine. crxml (Crystal Reports XML) is the reference adapter that proved this model.

  • Performance without compromise. ~4.2 GB/s parallel, ~950 MB/s single-threaded (Ryzen 7 5800X, crxml workloads). Zero-copy Arrow export. Predicate-first evaluation. Layout prediction via memcmp.

  • Correctness by construction. Differential testing, fuzz targets, property tests, and a tier-ladder profiler.

  • Python-native ergonomics. Chainable pipeline API with automatic fusion of rename/drop/cast/filter into the Rust parse loop. Streaming with bounded memory. Schema discovery. DataFrame and Parquet sinks.

What rypipe is not

  • Not a query engine. No joins, aggregations, window functions, or SQL.
  • Not a parser. Each format needs an adapter package.
  • Not a data warehouse. It ingests into Arrow; it does not store or serve.
  • Not pure Python. Adapters are written in Rust for performance. Python users consume data through adapter APIs; they do not need to write Rust unless creating a new adapter.

Features

  • Zero-copy friendly: decoders emit borrowed strings; the engine copies only when necessary.
  • GIL-free parsing: heavy work runs outside Python's GIL.
  • Parallel by default: chunked parsing with rayon scales to many cores.
  • Memory bounded: stream files larger than RAM with iter_record_batches and a configurable budget.
  • Pushdown filters: rename, drop, type, and filter rows while parsing.
  • Expression API: polars-style col(...) predicates that fuse into the parse loop, composable with &, |, ~.
  • Observer hooks: per-row callbacks from the engine, in Rust or Python.
  • Transparent decompression: gzip, zstd, and lz4 inputs detected by magic bytes and decompressed automatically.
  • Pipeline API: chainable rename/drop/cast/filter stages with automatic fusion.
  • Arrow native: produces RecordBatch and exports via the C Data Interface.

Crates

Crate Purpose
rypipe-core Pure Rust engine: Value, ExecutionPlan, TableBuilder, Pipeline, parallel/bounded drivers, Arrow export
rypipe-python PyO3 bindings for adapter packages; exposes the rypipe package
rypipe-test Property-based testing helpers and fixtures for adapter development

Documentation

Building

# Rust only
cargo build --workspace --release

# Python extension
maturin develop --release

Testing

# Rust
cargo test --workspace --all-features

# Python
pip install -e ".[dev]"
pytest crates/rypipe-python/tests/

License

MIT

Metadata

Release files for rypipe 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rypipe 0.3.0
File Size Uploaded
rypipe-0.3.0.tar.gz 180.7 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for rypipe 0.3.0
File
rypipe-0.3.0-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
rypipe-0.3.0-cp310-abi3-musllinux_1_2_x86_64.whl CPython 3.10 abi3 Linux musl 1.2+ x86-64 Details
rypipe-0.3.0-cp310-abi3-musllinux_1_2_aarch64.whl CPython 3.10 abi3 Linux musl 1.2+ ARM64 Details
rypipe-0.3.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details
rypipe-0.3.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details
rypipe-0.3.0-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details
rypipe-0.3.0-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details

Total release size: 2.2 MB

Release files / rypipe-0.3.0.tar.gz

Download URL rypipe-0.3.0.tar.gz
Size 180.7 kB
Tags Source
SHA-256 checksum
How to use checksums
d375346fc6fe47a65d487865f2c17258f01d4c5e263106fdbf9be4d3a445631b
BLAKE2b-256 checksum
How to use checksums
0d48510c0e37125c0b4aa63ec61d65dd41f576024b693ecba2ceeda08f058677
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 11, 2026.

Transparency log

Release files / rypipe-0.3.0-cp310-abi3-win_amd64.whl

Download URL rypipe-0.3.0-cp310-abi3-win_amd64.whl
Size 161.3 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
c50034dcf5c37b6dfba5c9ae8eec01c406f429e267467261a1ff7796f3d4e3d6
BLAKE2b-256 checksum
How to use checksums
525e5c4983cbd03befec63b9c8cd8a17ae8a94f0b3396d1165a394b5b9a32194
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 11, 2026.

Transparency log

Release files / rypipe-0.3.0-cp310-abi3-musllinux_1_2_x86_64.whl

Download URL rypipe-0.3.0-cp310-abi3-musllinux_1_2_x86_64.whl
Size 461.2 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
f2268b809e24b87c2da2c61f0327a8a2ae58f4e92e187091dd56a74a812c8685
BLAKE2b-256 checksum
How to use checksums
d7c0fb417d4adfee201e6c4cded644cc22f715c14d7639e066c6caae0329ed9d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 11, 2026.

Transparency log

Release files / rypipe-0.3.0-cp310-abi3-musllinux_1_2_aarch64.whl

Download URL rypipe-0.3.0-cp310-abi3-musllinux_1_2_aarch64.whl
Size 420.5 kB
Tags CPython 3.10 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
ba5d2d29d19f1e79b422d6157c038ca3a2701a62d68ba1f6d788f064876cc21a
BLAKE2b-256 checksum
How to use checksums
a1d1aaa0bfc7c24179bc3be470751e06f35ef37151ebf510d8fa91c1a25b009f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 11, 2026.

Transparency log

Release files / rypipe-0.3.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rypipe-0.3.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 248.5 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
a9d1d2ab75a13acc6f197f0008821d4a73be698cc7756ecab85c80440dfacc79
BLAKE2b-256 checksum
How to use checksums
038d8a6079a91ed8cb8a137177d0bd8e50a188f5339c5534fb0756c5d51f5434
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 11, 2026.

Transparency log

Release files / rypipe-0.3.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL rypipe-0.3.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 251.8 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
8306574e99fdfccb6b2aa9dbffb2557012e8404d179fa41a3f6791224043b278
BLAKE2b-256 checksum
How to use checksums
2cc21e4450802719729d55c8804043a600fa425e3531381547472b0350436bbc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 11, 2026.

Transparency log

Release files / rypipe-0.3.0-cp310-abi3-macosx_11_0_arm64.whl

Download URL rypipe-0.3.0-cp310-abi3-macosx_11_0_arm64.whl
Size 233.9 kB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
636711e330a909a600ae27021b58dc1da437edf7713c7a3ecdeb03719c02976e
BLAKE2b-256 checksum
How to use checksums
2a8d885dfb21aceb82a0a59b7946f9601b94c02b239aecf13bc0606e781d8887
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 11, 2026.

Transparency log

Release files / rypipe-0.3.0-cp310-abi3-macosx_10_12_x86_64.whl

Download URL rypipe-0.3.0-cp310-abi3-macosx_10_12_x86_64.whl
Size 241.6 kB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
0048b496d3057bf33b41c5399698ac32e9fc8889981d9610a45473416419ea8c
BLAKE2b-256 checksum
How to use checksums
055ddd15e431a8b0eb28fb01e9d843b975f19aafe17a168504783ab9b0dbe59f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 11, 2026.

Transparency log

Release history Release notifications | RSS feed

0.5.1

8 release files

0.5.0

8 release files

0.4.0

8 release files

0.3.1

8 release files

This release

0.3.0 This release

8 release files

0.1.0

8 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page