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.1.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.1.0-cp314-cp314-win_amd64.whl (167.0 kB view details)

Uploaded CPython 3.14Windows x86-64

openyxdb-1.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (231.9 kB view details)

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

openyxdb-1.1.0-cp314-cp314-macosx_11_0_arm64.whl (165.0 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

openyxdb-1.1.0-cp313-cp313-win_amd64.whl (160.9 kB view details)

Uploaded CPython 3.13Windows x86-64

openyxdb-1.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (231.9 kB view details)

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

openyxdb-1.1.0-cp313-cp313-macosx_11_0_arm64.whl (164.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

openyxdb-1.1.0-cp312-cp312-win_amd64.whl (161.0 kB view details)

Uploaded CPython 3.12Windows x86-64

openyxdb-1.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (231.9 kB view details)

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

openyxdb-1.1.0-cp312-cp312-macosx_11_0_arm64.whl (164.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

openyxdb-1.1.0-cp311-cp311-win_amd64.whl (161.6 kB view details)

Uploaded CPython 3.11Windows x86-64

openyxdb-1.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (233.1 kB view details)

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

openyxdb-1.1.0-cp311-cp311-macosx_11_0_arm64.whl (166.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

openyxdb-1.1.0-cp310-cp310-win_amd64.whl (161.8 kB view details)

Uploaded CPython 3.10Windows x86-64

openyxdb-1.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (233.4 kB view details)

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

openyxdb-1.1.0-cp310-cp310-macosx_11_0_arm64.whl (166.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: openyxdb-1.1.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.1.0.tar.gz
Algorithm Hash digest
SHA256 75a552f677577fee7fcceea969f4a8ff4e478b216797fd8de651ff638d3ff78b
MD5 fda8d09dd0e70340ff5e58e201957232
BLAKE2b-256 21768008b8273c98d42dc4333b01c7c181fb5b43f671cfc14f6cb411063be08d

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.1.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.1.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: openyxdb-1.1.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 167.0 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.1.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 b03102d3ad2ff8be6369043810dd0940efa975a34d64a8094c80e8df351ccf2a
MD5 49261ed9da8f3cd7e8c88da77f8424e6
BLAKE2b-256 1231188a4e2482a632823a67f9ba43c8f21e57c6c8a7bda76c8b62ece44aa62a

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.1.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.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for openyxdb-1.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8f7ef18d00dadfd67697eea5aebd362ba1917b186cb065c21053039f234b3c74
MD5 4b5d9f3cb943a72ae66c035ed52938fc
BLAKE2b-256 300e0913f4d00328ea9576cd2287efde324b7fca83e4600f719a7ce1454fb908

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.1.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.1.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openyxdb-1.1.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 16e92d0362074c30ca862c28a9fba9c986d23cedcb148a9aff653b96aac9d1a9
MD5 137d712b5afc5996972ba17848547147
BLAKE2b-256 bf65856dc0e49e332f93dd767aa1bcb5fc0475e35b67f5a9c239061191840d79

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.1.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.1.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: openyxdb-1.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 160.9 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.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 78ffd78f3aef5c7af060c5663e85a5a0f45ce899c08bc7aac94108b94c07ed18
MD5 79bce1dc0a4066d5ffd977866bcf3419
BLAKE2b-256 7d95dc7dfd5eafd0817f4ce323391d8afb042508de895cedd9bf13c8e1d3b41a

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.1.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.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for openyxdb-1.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e29426fa37849d2ee5ac79a59383587bf2bfdfe1f1eaee54894916ff470dbec7
MD5 c08e29fa78fc416907c2e15c1c2d8eb4
BLAKE2b-256 78443cf45aef60b51e28789b729a919358a0aa08864711678dbae1816001d547

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.1.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.1.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openyxdb-1.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eb263b5bfb623e73f7ea5cb9a32e05bf0c4acc6c16c14ac2637223add54793fc
MD5 85ad0d0440cddad1298d1b6b0d078ec4
BLAKE2b-256 318bc96da697edc49222e1b64342b287912ccfe281d4f89cc1de4166a7a40b24

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.1.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.1.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: openyxdb-1.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 161.0 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.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 96a2ecc4edc3db10dca9238123f4806433c86916d927175fb9898505200c0438
MD5 e218ca99aa989b49872d234855f4fe7a
BLAKE2b-256 3afe6c4abc20692b7ce1820e0ef323b1c4cddb3329f316c77d9092490c86c2c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.1.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.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for openyxdb-1.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c0ccef619954cb41c0950af53aef9cd34b7bfd62cdca48ebdc8a928969f40e21
MD5 59ff6bf888c5e143e1b2d26e69307888
BLAKE2b-256 5d1e37b9f3f7867eb9a1fd62acf3246db98d4df631ba2c816ef1bbc4ad211550

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.1.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.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openyxdb-1.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 add8dd8ca6bf3ab373529bcb8ccd82c57670ca2ae117c603772ffce27870006f
MD5 658b559e98978210fc7a92757a2bf198
BLAKE2b-256 321d10269fc01cd3608381987be5a2be70db31f922a462d9f59b73aa34e0ce24

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.1.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.1.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: openyxdb-1.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 161.6 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.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 63e066a81852d5075fac2c3275fbe59eef6fdfba03b244519b7d0ca158e55fdb
MD5 19ddb2ec8c7da9dca5314001245981d7
BLAKE2b-256 5ba10bbf71fa1c8fb6241eaeea1b7ddc430965264dd471560e7cc910beed38d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.1.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.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for openyxdb-1.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4f59c58bb0f7936df61c10c0d32a4a94a903318d6ee56986c8eb8adc7a0e1bdd
MD5 92e86d9602c3efd08b753cdafed537f8
BLAKE2b-256 a139c14d202fe524917da47c26b5e2be6727eb4d5298999ed853840122aa5cdf

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.1.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.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openyxdb-1.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 12bf6ea865a33996ec89028cc57a251648ed3961aa2b731a57a56f6d93d0b009
MD5 de4d4d78198bf770c40bcb8c7dca9035
BLAKE2b-256 f850058da3a56f6472e20bf3ab040948266516eb3eae9af148d060843eaaf1af

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.1.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.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: openyxdb-1.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 161.8 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.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2b9003b4e741128115d3dc3ae4f63f6e2facc0d9d24a7bdb0e39717f2ca24056
MD5 125ec52bfa84c37e68d23e04dc7f01cd
BLAKE2b-256 9fcdc10c407657c619c1992664dbe28a881ecc9d40716e7caf7e847af019876c

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.1.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.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for openyxdb-1.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 61d7721bcc7e3e31f124cf46b39155243d8cdab339d845a8ca3509bfccaa95cf
MD5 cdc9ee1b173253b3604ee96353c0d494
BLAKE2b-256 7c87d61839eb1e1f18dc1b601b34cb84818b6ba52d0ef8dfd8e4408e652c0826

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.1.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.1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openyxdb-1.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a92bd63e265974f9c32ca8dc874f2bd9bbe3f959660adffd4a25b4a3429337a3
MD5 09396e0f025bd920e53a6815322c511e
BLAKE2b-256 0fd841cdde54800d77c4191038429820d18cf56468c2f8229665901eb87b9e10

See more details on using hashes here.

Provenance

The following attestation bundles were made for openyxdb-1.1.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