Skip to main content

Read and write Alteryx YXDB files

Project description

OpenYXDB

Read and write Alteryx YXDB files from Python and C++.

Built on Alteryx's official open-source YXDB implementation, released under GPLv3. This fork modernizes the build system, fixes bugs, adds cross-platform support, and wraps the C++ core in a Python package with first-class PyArrow, Pandas, and Polars integration.

What changed from the Alteryx original

  • Cross-platform support -- builds and runs on Linux, macOS, and Windows (the original targeted Windows only)
  • Python bindings via nanobind, published to PyPI as openyxdb
  • PyArrow, Pandas, and Polars read/write integration with automatic type mapping
  • Bug fixes -- block index was never written to disk (broke files with more than 65,536 records), reference-counting crash on GCC
  • Modern CMake (3.20+, target-based), pixi for dependency management, Catch2 test suite, GitHub Actions CI

What is YXDB?

YXDB is the native binary format used by Alteryx Designer. It is row-oriented: each file contains UTF-16 XML metadata describing the schema, followed by LZF-compressed blocks of records, and a block index at the end for random access.

This library supports E1 (non-AMP) YXDB files only.

Install

pip install openyxdb

Usage

import openyxdb

# Read to PyArrow, Pandas, or Polars
table = openyxdb.to_pyarrow("data.yxdb")
df = openyxdb.to_pandas("data.yxdb")
df = openyxdb.to_polars("data.yxdb")

# Write from any of them
openyxdb.from_polars(df, "output.yxdb")
openyxdb.from_pandas(df, "output.yxdb")
openyxdb.from_pyarrow(table, "output.yxdb")

All 17 YXDB field types are supported: Bool, Byte, Int16, Int32, Int64, FixedDecimal, Float, Double, String, WString, V_String, V_WString, Date, Time, DateTime, Blob, and SpatialObj.

Polars integration

Importing openyxdb automatically monkey-patches polars with YXDB support (no-op if polars is not installed). No extra setup is required.

Top-level aliases

import polars as pl
import openyxdb  # registers everything on import

# Eager read — returns a DataFrame
df = pl.read_yxdb("data.yxdb")

# Lazy scan — returns a LazyFrame with projection & predicate pushdown
lf = pl.scan_yxdb("data.yxdb")
df = lf.select("col_a", "col_b").filter(pl.col("col_a") > 10).collect()

Namespace plugins

# Write a DataFrame directly
df.yxdb.write("output.yxdb")

# Collect a LazyFrame and write
lf.yxdb.sink("output.yxdb")

Manual registration

If you import openyxdb after polars is already loaded, everything is registered automatically. To re-register or verify:

openyxdb.register_polars()

Building from source

pixi install
pixi run build
pixi run test

Limitations

  • Spatial indexes are skipped on read and not created on write.
  • Spatial objects are accessible only as raw blobs (SHP-encoded binary).
  • Little-endian architectures only (x86, ARM).

Testing

The reader has been validated against 1,012 real-world E1 YXDB files sourced from the community corpus at Sigilweaver/YXDB-Sources, covering a wide range of field types, encodings, record counts (0 to 200k+), and filenames including non-ASCII characters — 100% pass rate.

License

GPLv3 -- see LICENSE.

Project details


Download files

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

Source Distribution

openyxdb-1.2.0.tar.gz (2.4 MB view details)

Uploaded Source

Built Distributions

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

openyxdb-1.2.0-cp314-cp314-win_amd64.whl (172.4 kB view details)

Uploaded CPython 3.14Windows x86-64

openyxdb-1.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (236.7 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

openyxdb-1.2.0-cp314-cp314-macosx_11_0_arm64.whl (169.8 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

openyxdb-1.2.0-cp313-cp313-win_amd64.whl (166.4 kB view details)

Uploaded CPython 3.13Windows x86-64

openyxdb-1.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (236.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

openyxdb-1.2.0-cp313-cp313-macosx_11_0_arm64.whl (169.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

openyxdb-1.2.0-cp312-cp312-win_amd64.whl (166.5 kB view details)

Uploaded CPython 3.12Windows x86-64

openyxdb-1.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (236.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

openyxdb-1.2.0-cp312-cp312-macosx_11_0_arm64.whl (169.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

openyxdb-1.2.0-cp311-cp311-win_amd64.whl (167.3 kB view details)

Uploaded CPython 3.11Windows x86-64

openyxdb-1.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (238.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

openyxdb-1.2.0-cp311-cp311-macosx_11_0_arm64.whl (170.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

openyxdb-1.2.0-cp310-cp310-win_amd64.whl (167.5 kB view details)

Uploaded CPython 3.10Windows x86-64

openyxdb-1.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (238.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

openyxdb-1.2.0-cp310-cp310-macosx_11_0_arm64.whl (171.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file openyxdb-1.2.0.tar.gz.

File metadata

  • Download URL: openyxdb-1.2.0.tar.gz
  • Upload date:
  • Size: 2.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for openyxdb-1.2.0.tar.gz
Algorithm Hash digest
SHA256 08310c3b6e1e8c972714377515c3fecc77ef12e8a7522efb783062bdee9f1a3d
MD5 6fe6425e5127b608525450a7d1823601
BLAKE2b-256 01fd5553f0a40383a2264c80da30a93b95ab6727089d7f8824ec6620008d1a7c

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.2.0.tar.gz:

Publisher: publish.yml on Sigilweaver/OpenYXDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openyxdb-1.2.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: openyxdb-1.2.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 172.4 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for openyxdb-1.2.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 9d8ba441d8f891cb8d3fd4c3f29ec52bcc835bb9013f07bf85654e65e2056ee6
MD5 40542f3941cd1b8a927c9480a04f8333
BLAKE2b-256 1c56485465e0bba51f01c62551a1a1c4bafad25b9c8a807fd53229cd0f28f375

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.2.0-cp314-cp314-win_amd64.whl:

Publisher: publish.yml on Sigilweaver/OpenYXDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openyxdb-1.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for openyxdb-1.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6781a8f61376ebe68d7c16b75e1a632dd2599b71b8d47ac6d1217414745e5bce
MD5 d557db19c9e979752cb18111fa792efd
BLAKE2b-256 7393ba58909e9d4a1439c5a851c3de60071527bd11c57303171b76cbc971e286

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on Sigilweaver/OpenYXDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openyxdb-1.2.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openyxdb-1.2.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cf46c944b4be194ac1d0426d04c0ef1ce3c11564c40e69aacb3a4c6d9034625c
MD5 c08f7805001897410d344ca39cf65919
BLAKE2b-256 89cc560f5e21ef8faf8e2c75bc940c80fb35a4a69e06b11b2bdbef16be7c6f9b

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.2.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: publish.yml on Sigilweaver/OpenYXDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openyxdb-1.2.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: openyxdb-1.2.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 166.4 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for openyxdb-1.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 28813685d85e4f38a48d50f520a91a9e7865014463b4116bb1b6a64ed083f6ad
MD5 32f641b252ec8474975157fec8cfadc0
BLAKE2b-256 0d15c5c2eddb59846156d3fe650d4e471e44f2fe6887c2ed0749e0df8205a499

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.2.0-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on Sigilweaver/OpenYXDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openyxdb-1.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for openyxdb-1.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 334bf477a4678ebec16c720159294b1f92351d58c4ef43264e52249ab58e8a75
MD5 c296c85f8f73a8fe2f068d3c5f2c9c05
BLAKE2b-256 d21b0c9f6edc6330751e10d2ec61c236d865a586917018b0ba443d8446bf0552

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on Sigilweaver/OpenYXDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openyxdb-1.2.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openyxdb-1.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0e89be051e994d91b90c64deacce80ccaa99b82f777d00b70a1a12a17aed72b9
MD5 789b8275537d8dcdeeb89009ec1083ad
BLAKE2b-256 f104a1c714f70cd104c86bd565f7f2715cd6a41f7b9b94495f9bba79b788548d

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.2.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on Sigilweaver/OpenYXDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openyxdb-1.2.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: openyxdb-1.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 166.5 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for openyxdb-1.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 272b695424d300535b97208685c32314d127c1fc9602c65059265614260d012e
MD5 a9509727fe37e8e43a45f2c09385d189
BLAKE2b-256 bfb90a48851c030a3abc08f05764ad1e74b63f36a67c5f2398c5851bf6fe51c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.2.0-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on Sigilweaver/OpenYXDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openyxdb-1.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for openyxdb-1.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cc498f2ea36ff5d09506a0753d86e71b0da2b3f1348b701db3b7646852683d1d
MD5 805d6e2f1b34d64ad287a50658317dcf
BLAKE2b-256 7e2a9fc6198860d1d9b6f9f446b626e838ae04cc1d10074821964d871d58edc9

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on Sigilweaver/OpenYXDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openyxdb-1.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openyxdb-1.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0343e485e02c5335ba42d46eb2a7e086a69917307997caa63af7c4bfa9b82e79
MD5 dbe96e595b587917c1c65327c62e2ed4
BLAKE2b-256 b90585e82245f7d11c53404f18620de8e64b6cf112473db9de8f077d4be4cc1d

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.2.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on Sigilweaver/OpenYXDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openyxdb-1.2.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: openyxdb-1.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 167.3 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for openyxdb-1.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 198a05f59e5db9c6c7b193015f640b1257b72dd35085faaf002ce304314dcfac
MD5 f05e9d66f2f1400fab99a601ef2c4bfc
BLAKE2b-256 55027ca9cf4dd7262f69735d0ec2d0ce61adbdc659badead8c285bc0b77c34fa

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.2.0-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on Sigilweaver/OpenYXDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openyxdb-1.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for openyxdb-1.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 efb5b87592ae5daf4ec3e73537c98f997a31ec1559e1d4d0611fe09d20eca3fb
MD5 4d3f680331f13ac9b2f88e958f3879de
BLAKE2b-256 25af4b6543695b542657effbf91a2e5adadcd08f33ec9f84fce5e8c461c74947

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on Sigilweaver/OpenYXDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openyxdb-1.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openyxdb-1.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0850489e29019ba7e809a2eb54a0a64835e7ee9f8859e7a1c7676fabc39a92f0
MD5 684960ef0c8d2b235ec46d326cdc7f1c
BLAKE2b-256 6bbd5c01d1b572a72752941c8b8bca11bad44b7d6f5287f70bd6a8b52988a3a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.2.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on Sigilweaver/OpenYXDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openyxdb-1.2.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: openyxdb-1.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 167.5 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for openyxdb-1.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b96146e547faa932aab66b2e52174cbf6c62bb4a35bf0e4947370dbb58a187c3
MD5 4a2d4976a5f644a5d94eb987b78febc5
BLAKE2b-256 f167482af1f6db456d1004d7a329e4697ad86fd98dfb42f2d92577cef80b3728

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.2.0-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on Sigilweaver/OpenYXDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openyxdb-1.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for openyxdb-1.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 43112509539f4c919d3fef462a686aa2d459ca2ce99e8a8f28b7ca7777456084
MD5 a15fb0c2065cfd5b5c8f6254e69d30b7
BLAKE2b-256 4fbe59806453aecf3323e3c6c638f14b0eb80226238dd6cd8b4162a5306cff84

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on Sigilweaver/OpenYXDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openyxdb-1.2.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openyxdb-1.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 da1ab939506d103d101cd1113719867c9ee1b41857e90fdec10e8ffaa2be3d07
MD5 370b9d840a20a3f21c130eead0e7b402
BLAKE2b-256 e6d213c46ea8b1118681e924c1c3cc7beb5c3854be33a8689cba61f1a8839ee5

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.2.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on Sigilweaver/OpenYXDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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