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.1

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.1
File Size Uploaded
rypipe-0.3.1.tar.gz 180.7 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for rypipe 0.3.1
File
rypipe-0.3.1-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
rypipe-0.3.1-cp310-abi3-musllinux_1_2_x86_64.whl CPython 3.10 abi3 Linux musl 1.2+ x86-64 Details
rypipe-0.3.1-cp310-abi3-musllinux_1_2_aarch64.whl CPython 3.10 abi3 Linux musl 1.2+ ARM64 Details
rypipe-0.3.1-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.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details
rypipe-0.3.1-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details
rypipe-0.3.1-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.1.tar.gz

Download URL rypipe-0.3.1.tar.gz
Size 180.7 kB
Tags Source
SHA-256 checksum
How to use checksums
6a1624c8a7ad2b890bf341a9f153bacc753aafd5cae8c3e327e223df1133da6b
BLAKE2b-256 checksum
How to use checksums
2352095638528fe44f339d9397a7e018e7d3fe1e693b569d01c9c03228e71bbe
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.1-cp310-abi3-win_amd64.whl

Download URL rypipe-0.3.1-cp310-abi3-win_amd64.whl
Size 161.3 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
a0e9d493a6005e2053b01e9de7b73cfbf5fbe2c1ccb94309c04c7032e16681b3
BLAKE2b-256 checksum
How to use checksums
9a70fb33ac0a3fdf53dc3d83286b42f684063e363d32c708eeb92628811a6902
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.1-cp310-abi3-musllinux_1_2_x86_64.whl

Download URL rypipe-0.3.1-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
caf9c33c492695134697b879be76909f92e4d6323e8971fbae6e89608905495d
BLAKE2b-256 checksum
How to use checksums
a76e855ffc8bef3bcebc5d08b67a62ab0cda71182311e05b25c96ae653306b63
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.1-cp310-abi3-musllinux_1_2_aarch64.whl

Download URL rypipe-0.3.1-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
a84e9c305512a7c033379cabcf6f80bf0b338e24b056fd34ed5a58d014435d97
BLAKE2b-256 checksum
How to use checksums
962e11218c806df13ae98732f20547ee55e1774416ac26ca82f31abdcf0bf47d
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.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rypipe-0.3.1-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
4f25dd2139e41278a57b0bbc7ff0d3abcf37e56e92136b095e004bbaceedbf8f
BLAKE2b-256 checksum
How to use checksums
5d5cf4e7e91e0c4f83aa3b790d36db370758577a35b0a35d6bd7dfa36e7ce132
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.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL rypipe-0.3.1-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
e65607c3c21a5379ca6b0a3ee4f0f2ea6cec1222b3eff145d08c5163f2ba69e1
BLAKE2b-256 checksum
How to use checksums
89e61ddbeb47b4c43a92da5b3f95c5fd763bc46373348df44c88eb4fa224d2f8
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.1-cp310-abi3-macosx_11_0_arm64.whl

Download URL rypipe-0.3.1-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
04d132666da831a83c32ef5ac7b790118bac3d043c6df07da2b49bb6ed7ef495
BLAKE2b-256 checksum
How to use checksums
ee4a27f70320f1b3141fb2e6a616405caf336cd9f2571a5efa8d7f3583366d35
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.1-cp310-abi3-macosx_10_12_x86_64.whl

Download URL rypipe-0.3.1-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
55a52f812691bd12d33420767debaf2f19a158d93d896aae977431db21d728aa
BLAKE2b-256 checksum
How to use checksums
634c550d5a1eb3ac245f4087e5fb21ba123258454af0c718ae77154d8d2e73e7
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

This release

0.3.1 This release

8 release files

0.3.0

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