Changelog
The canonical changelog lives at
CHANGELOG.md
in the repository root. The notes below mirror the latest releases.
1.3.0 - 2026-04-21
sink_yxdb(lf, path, chunk_size=..., engine="streaming")-- streaming-friendly write from a PolarsLazyFrame. Executes on Polars' streaming engine and writes to disk in chunks.df.yxdb.write(..., chunk_size=...)/lf.yxdb.sink(..., chunk_size=..., engine=...)-- Polars namespace methods now forwardchunk_sizeto the batched writer.- DuckDB integration --
to_duckdb,register_duckdb, andfrom_duckdbhelpers. Newduckdboptional extra. from_pyarrow(..., chunk_size=...)/from_pandas(..., chunk_size=...)-- optional chunked write paths for very large tables.- PyArrow is now a required runtime dependency (was optional).
- Full E1 corpus (1,012 files) validated under sink and DuckDB paths. Full suite: 1,040 passed.
1.2.0 - 2026-04-18
- Real pushdown for
scan_yxdb-- true projection and row-limit pushdown at the C++ reader.scan_yxdb(path).head(1000).collect()on a 126 MB / 336k-row file drops from ~770 ms to ~2 ms. Reader.read_columns_subset(columns, offset, limit)-- new low-level binding for partial reads.- Batch streaming in
scan_yxdb-- the IO source yields chunks (default 65,536 rows) instead of one large frame. - Fixed:
scan_yxdbno longer re-decodes the whole file on every collect.
1.1.0 - 2026-04-18
- Python 3.14 wheel builds.
openyxdb.help()-- prints quick-start examples and the full list of supported field types.python -m openyxdb-- module entry point;--versionflag.
1.0.2 - 2026-04-04
- C++ exception translation -- C++ errors now produce a Python
RuntimeErrorwith the original message. - UTF-8 filename support on Linux.
- UTF-16 surrogate pair handling.
- Non-UTF-8 narrow string field fallback (Latin-1).
- Zero-record file crash fix.
- Validated against 1,012 real-world E1 YXDB files -- 100% pass rate.
1.0.1 - 2026-04-04
- Polars IO plugin --
scan_yxdb()with projection, predicate, and row-limit pushdown. - Polars namespace plugins --
df.yxdb.write(path)andlf.yxdb.sink(path). - Top-level Polars aliases --
pl.read_yxdbandpl.scan_yxdb.
1.0.0 - 2026-04-03
First production release, forked from the dormant Alteryx repository.
- Python bindings via nanobind.
- High-level API:
read_yxdb,write_yxdb,to_pyarrow,from_pyarrow,to_pandas,from_pandas,to_polars,from_polars. - Low-level
Reader/Writer/FieldInfoclasses. - Cross-platform C++ core (Linux, macOS, Windows).
- Block index write bug fixed (broke files with more than 65,536 records in the original Alteryx code).
- Modern CMakeLists.txt, Catch2 test suite, GitHub Actions CI.