Skip to main content

sigilyx

YXDB reader and writer for Python.

PyPI Python License: Apache-2.0

YXDB is the native binary format used by Alteryx Designer. sigilyx reads and writes .yxdb files using Polars DataFrames, PyArrow Tables, or Pandas DataFrames.

The core is written in Rust. No native Alteryx Designer installation is required.

Format scope: sigilyx has full read/write support for the E1 (original engine) YXDB layout. Experimental read support for E2 (AMP engine) is included - 15 field types have been verified against real E2 files; the rare Time and WString types retain speculative decoders behind an opt-in flag. E2 writing is not yet supported. E2 records that cannot be decoded raise an error rather than silently becoming null rows. See SPECIFICATION-E2.md for details.

Installation

pip install sigilyx                     # Polars only (default)
pip install "sigilyx[arrow]"            # + PyArrow
pip install "sigilyx[pandas]"           # + Pandas + PyArrow
pip install "sigilyx[all]"              # all extras

Requires Python 3.9+. Pre-built wheels for Windows, macOS, and Linux (x64 and ARM).

Quick Start

import polars as pl
import sigilyx  # importing registers pl.read_yxdb(), df.yxdb, etc.

# Read
df = pl.read_yxdb("data.yxdb")

# Write
df.yxdb.write("output.yxdb")

API

Polars Integration

Importing sigilyx registers official Polars namespace plugins and top-level IO aliases. No extra calls needed - just import sigilyx.

import polars as pl
import sigilyx

# Top-level IO (mirrors pl.read_parquet / pl.scan_parquet style)
df = pl.read_yxdb("data.yxdb")           # returns pl.DataFrame
lf = pl.scan_yxdb("data.yxdb")           # returns pl.LazyFrame (IO plugin)

# Namespace API on DataFrame / LazyFrame
df.yxdb.write("output.yxdb")             # pl.DataFrame → .yxdb file
lf.yxdb.sink("output.yxdb")              # pl.LazyFrame → .yxdb file (streaming)

Reading

import sigilyx as yx

# Polars DataFrame - fastest, zero-copy via Arrow C Data Interface
df = yx.read_yxdb("data.yxdb")

# PyArrow Table
table = yx.read_yxdb_arrow("data.yxdb")

# Pandas DataFrame (via PyArrow)
pdf = yx.read_yxdb_pandas("data.yxdb")

Writing

import sigilyx as yx

# Polars DataFrame
yx.write_yxdb("output.yxdb", df)

# PyArrow Table
yx.write_yxdb_arrow("output.yxdb", table)

# Pandas DataFrame
yx.write_yxdb_pandas("output.yxdb", pdf)

Streaming / Batched Read

Iterate over large files with constant memory usage:

import sigilyx as yx

# Basic iteration - each batch is a Polars DataFrame
for batch in yx.read_yxdb_batches("data.yxdb", batch_size=100_000):
    process(batch)

# Column projection - only materialise the columns you need
for batch in yx.read_yxdb_batches("data.yxdb", columns=["Id", "Name", "Amount"]):
    process(batch)

# Row limit - stop after N total rows
for batch in yx.read_yxdb_batches("data.yxdb", n_rows=5_000):
    process(batch)

Lazy Scan

import polars as pl
import sigilyx as yx

# Returns a Polars LazyFrame backed by a native Rust streaming reader.
# Only the YXDB header is read on construction; data streams on .collect().
lf = yx.scan("data.yxdb")

result = lf.filter(pl.col("amount") > 100).collect()

# Projection pushdown - only selected columns are materialised in Rust
top10 = lf.select("id", "name").head(10).collect()

Pushdown support: projection (select / with_columns) and row-limit (n_rows / .head()) are pushed down to the Rust reader. Predicate pushdown is not possible - YXDB rows are LZF-compressed with no block-level statistics, so .filter() is applied after the scan.

Metadata

import sigilyx as yx

# Inspect schema without reading any row data
fields = yx.read_yxdb_fields("data.yxdb")
for f in fields:
    print(f.name, f.field_type, f.size)

# Record count from the file header - no data read
n = yx.record_count("data.yxdb")

Diagnostics

Create a privacy-aware report when a file does not read:

python -m sigilyx.diagnostics data.yxdb

The default report includes environment, file size and SHA-256, detected format, schema type counts, record count, and decode outcome. It excludes the input path, file name, row values, raw bytes, schema names, and full parser errors. Use --include-schema or --include-error-details only after reviewing the output for sensitive information.

Field Types

YXDB Type Polars / Arrow Type Notes
Bool Boolean
Byte Int16 Unsigned byte stored as Int16
Int16 Int16
Int32 Int32
Int64 Int64
Float Float32
Double Float64
FixedDecimal Decimal Precision and scale preserved
String String / Utf8 Fixed-width, ASCII/Latin-1
WString String / Utf8 Fixed-width, UTF-16 decoded
V_String String / LargeUtf8 Variable-length, ASCII/Latin-1
V_WString String / LargeUtf8 Variable-length, UTF-16 decoded
Date Date Days since Unix epoch
DateTime Datetime(us) Microsecond precision
Time Time Nanosecond precision
Blob Binary / LargeBinary Variable-length binary
SpatialObj Binary / LargeBinary Geometry as ISO WKB or raw SHP bytes

License

Apache License 2.0.

Metadata

Release files for sigilyx 0.4.2

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

Source distribution (sdist)

Source distribution for sigilyx 0.4.2
File Size Uploaded
sigilyx-0.4.2.tar.gz 162.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for sigilyx 0.4.2
File
sigilyx-0.4.2-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
sigilyx-0.4.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 abi3 Linux glibc 2.17+ x86-64 Details
sigilyx-0.4.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 abi3 Linux glibc 2.17+ ARM64 Details
sigilyx-0.4.2-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details

Total release size: 24.9 MB

Release files / sigilyx-0.4.2.tar.gz

Download URL sigilyx-0.4.2.tar.gz
Size 162.1 kB
Tags Source
SHA-256 checksum
How to use checksums
e922bf4df3fa32fec03b02f2e6400db1ad9ece45c69c4a1c4d19bae64f7104fb
BLAKE2b-256 checksum
How to use checksums
662233736dcef41176e627c2f7b104a8a6dd8c39ee63bbc0c06fec16479316be
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 22, 2026.

Transparency log

Release files / sigilyx-0.4.2-cp39-abi3-win_amd64.whl

Download URL sigilyx-0.4.2-cp39-abi3-win_amd64.whl
Size 6.9 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
7ed0f02dc9fbf46429181f84627e61ad0fe564455186c34509f444c0e9421eff
BLAKE2b-256 checksum
How to use checksums
15924df852bfc017bfcdf2d2c9af72c1df31a6b3fa346a19223965534d0efb9f
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 22, 2026.

Transparency log

Release files / sigilyx-0.4.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL sigilyx-0.4.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.4 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
04051d80dbd89c4619d32e6a5a552c814f37f44dc890f32256ca115ea662a35c
BLAKE2b-256 checksum
How to use checksums
a53195070f3810da39daa676ef2db3824329fcc9c60776d4a65e1409d78987a9
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 22, 2026.

Transparency log

Release files / sigilyx-0.4.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL sigilyx-0.4.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 5.8 MB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
f2917aaff31f95d537d2315ed42738802902f4cd90c825dce38091195278b074
BLAKE2b-256 checksum
How to use checksums
0a44dff4139a81bec42ffbf54655c2123192f6105a9b91422e6868fa5384a486
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 22, 2026.

Transparency log

Release files / sigilyx-0.4.2-cp39-abi3-macosx_11_0_arm64.whl

Download URL sigilyx-0.4.2-cp39-abi3-macosx_11_0_arm64.whl
Size 5.6 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ed725c7095f2ca6d3c59fa4d5695147c9e40899a86f0262d6fa3ad024d0cd177
BLAKE2b-256 checksum
How to use checksums
9836b71a5a1dd0715681e7ce955794da5a323ca3a72a7098bcd122e30080a7be
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 22, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.2 This release

5 release files

0.4.1

5 release files

0.4.0

5 release files

0.3.3

5 release files

0.3.2

5 release files

0.3.1

5 release files

0.3.0

4 release files

0.2.1

4 release files

0.0.0

2 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