skene
A draken-native columnar file format: reader, writer, and specification.
.skene stores one or more row groups of draken
vectors losslessly — including the things Parquet drops. An IPv4 column is a
UINT32 refined by an IPV4 logical descriptor; Parquet stores the 32 bits and
loses the refinement on every round trip. .skene carries it. It likewise
restores a column's dictionary encoding and layout hints rather than
re-deriving them.
Reads are per row group and the index is always explicit —
read_morsel(buf, row_group). Pruning goes through the small file-level index
(read_metadata), which carries the schema, the row group directory and every
row group's per-column statistics without opening a single row group's own
footer.
It is not portable, and no foreign reader is promised. Parquet stays the default
for interchange and for most stored datasets; .skene is for the cases where the
draken-native round trip is what matters — query results, sort spill, and
datasets we want optimised rather than interoperable.
- FORMAT.md — the normative specification. Complete enough to write an independent reader from.
- Rationale —
opteryx-core/docs/SKENE_FILE_FORMAT_DESIGN.md: why Parquet and the existing IPC format were rejected, what was traded, what is still open.
C++17, no dependencies, no Python.
Build
skene imports draken's headers; it never copies them. Point it at an
opteryx-core checkout — a sibling directory by default:
make # library and tests
make test # build and run every test
make DRAKEN_ROOT=/path/to/opteryx-core
Status
v1 is a DRAFT and is not frozen. Byte layouts are implemented and tested, but fields may still change without a version bump until v1 is released.
Implemented, writer and reader: the complete required-section layout in
AS_WRITTEN mode — every family (fixed-width, BOOL, the string family including
length-only columns, ARRAY with recursive children, NULL), all three selection
kinds, LogicalType round-trip, per-section and footer checksums, head/tail
framing, column selection, metadata-only reads with per-column byte extents, and
version identification. That is exactly the shape sort spill needs.
Also implemented: value ordering (sort + deduplicate each column's values,
with the selection carrying row order, so a predicate becomes a binary search and
data_length is the exact distinct count) and statistics (min/max ordinals,
null count, exact 128-bit sum).
Also implemented: four encodings (bit packing for selection codes, delta+bitpack for ascending integer data, and two per-section general-purpose codecs — zstd and lz4), zone maps, and bloom filters.
The two codecs are postures rather than alternatives to pick per section: zstd for ratio (7.34x at level 9 on ClickBench section bytes), lz4 for read latency (4.49x, but decoding at roughly the rate the reader's own uncompressed path runs at). zstd's decode rate does not vary with the level that produced the bytes, so a low zstd level gives up ratio and buys nothing back.
Per-section compression matters more than expected: on TPC-H, skene without it is 1.9-3.8x larger than the equivalent ZSTD Parquet, and with it 0.92-1.09x. See BENCHMARKS.md.
Not implemented: permutations — deferred because nothing produces a stored sort order yet — and migration, which needs a v2 to migrate from.
A file never claims more than was computed: a column ineligible for ordering is written as-written, and a statistic that cannot be defined is absent rather than zero.
Versioning
A build reads two versions — the one it writes and its predecessor — and
writes exactly one. Older files are migrated forward one hop at a time using
retained release binaries: binary vX migrates (X-1) → X, so a v1 file reaches
v4 by running v2, then v3, then v4. See FORMAT.md §12.
Because of that, any build can identify any file even when it cannot read it — which is what freezes the first six bytes of the header for all time.
Release files for libskene 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 53.4 MB
Release files / libskene-0.3.1-cp314-cp314-manylinux_2_34_x86_64.whl
| Download URL | libskene-0.3.1-cp314-cp314-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 6.0 MB |
| Tags | CPython 3.14 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
f247d80a73bda97f684aef05f810c0f3511b29cf268fd5d5ab17b686ad79b055
|
|
BLAKE2b-256 checksum How to use checksums |
378a3d349098d9f4d1ed104c55111a7ff87d65d66a928abc3b22d25df3d76290
|
| 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 25, 2026.
Transparency logRelease files / libskene-0.3.1-cp314-cp314-manylinux_2_34_aarch64.whl
| Download URL | libskene-0.3.1-cp314-cp314-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.14 Linux glibc 2.34+ ARM64 |
|
SHA-256 checksum How to use checksums |
10dd0dfbaa530908bb2c687746f33edc9bbdd58f22a702ea6180950bb201ba1a
|
|
BLAKE2b-256 checksum How to use checksums |
b2fcf0a7828addc0b0215556941e4ff0facce2e9e33ef8f35145e05490463a3f
|
| 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 25, 2026.
Transparency logRelease files / libskene-0.3.1-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | libskene-0.3.1-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 3.0 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5f8985aeb1bc2a20300c8fcbe5087e20ad2db889963a6dcce0b54d19fe69bff5
|
|
BLAKE2b-256 checksum How to use checksums |
6fe0a03ac5f1b6b1382a9b8ba165cc8886255b74afd41d3b268da1cfba2476d6
|
| 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 25, 2026.
Transparency logRelease files / libskene-0.3.1-cp313-cp313-manylinux_2_34_x86_64.whl
| Download URL | libskene-0.3.1-cp313-cp313-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 6.0 MB |
| Tags | CPython 3.13 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
0f4c5cf25d84abf560e8f51955ed21da41d5e5585205fa798ff2399201a0159f
|
|
BLAKE2b-256 checksum How to use checksums |
86623b96e3a6338071e15959019b813e96f615069f8d47aef55a4f3c44f67c43
|
| 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 25, 2026.
Transparency logRelease files / libskene-0.3.1-cp313-cp313-manylinux_2_34_aarch64.whl
| Download URL | libskene-0.3.1-cp313-cp313-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.13 Linux glibc 2.34+ ARM64 |
|
SHA-256 checksum How to use checksums |
08baa29c8d62b2cde5a4a34cbeb14e1e8ca6ac9dd27569e89bf99c73f17f82d6
|
|
BLAKE2b-256 checksum How to use checksums |
30cbb4895bb95ab212903687d38ffe4f95c224915595ff7aa98053ccdc642c46
|
| 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 25, 2026.
Transparency logRelease files / libskene-0.3.1-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | libskene-0.3.1-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 3.0 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
3a3e284bc0a4738ea24bcf794d2587307f226e383110d30fca7a203b3b02ca8f
|
|
BLAKE2b-256 checksum How to use checksums |
eddd62611e4303ada0fa5b250278ff9dd829f7a08b7507a86365db3702bfda36
|
| 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 25, 2026.
Transparency logRelease files / libskene-0.3.1-cp312-cp312-manylinux_2_34_x86_64.whl
| Download URL | libskene-0.3.1-cp312-cp312-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 6.0 MB |
| Tags | CPython 3.12 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
ec87f0994519f54d1f1bec67d9dde6e2316f4d855c36abd0832473719743a7c9
|
|
BLAKE2b-256 checksum How to use checksums |
f00818c477e35c698a261436bc2b7e89763bbbfdf6e66451ddeb08e812c0adb7
|
| 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 25, 2026.
Transparency logRelease files / libskene-0.3.1-cp312-cp312-manylinux_2_34_aarch64.whl
| Download URL | libskene-0.3.1-cp312-cp312-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.12 Linux glibc 2.34+ ARM64 |
|
SHA-256 checksum How to use checksums |
0cf594debbc90e2539be83944c02d9322d9b3370da590bfddbfc2a03960f4900
|
|
BLAKE2b-256 checksum How to use checksums |
3817f8f15a17a1ed25ffb84256c00079ecbb0f315dfd9bced1bd246fa75303c9
|
| 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 25, 2026.
Transparency logRelease files / libskene-0.3.1-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | libskene-0.3.1-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 3.0 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
acf0e77fc44e5bd9e75d4e185fe7c85fa0191ea73ce443dc8632ad74155534ab
|
|
BLAKE2b-256 checksum How to use checksums |
fb214204e495f488166e82283d6d17ab2c6b13c08e99360e20bf64f8892b5e80
|
| 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 25, 2026.
Transparency logRelease files / libskene-0.3.1-cp311-cp311-manylinux_2_34_x86_64.whl
| Download URL | libskene-0.3.1-cp311-cp311-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 6.0 MB |
| Tags | CPython 3.11 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
cd202855758fae041091248722a9204481b9aaa832b08823bd29fd42639c6555
|
|
BLAKE2b-256 checksum How to use checksums |
181d3312ebbda34f8a09f9ea8bdd90fbe261086f300d543a3b7a8dc9397521fd
|
| 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 25, 2026.
Transparency logRelease files / libskene-0.3.1-cp311-cp311-manylinux_2_34_aarch64.whl
| Download URL | libskene-0.3.1-cp311-cp311-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.11 Linux glibc 2.34+ ARM64 |
|
SHA-256 checksum How to use checksums |
5f27610b198e4ef3c2cf1d143d14a7bed69a89c38b07cfb3a3f4c3dd948343c3
|
|
BLAKE2b-256 checksum How to use checksums |
5bf371387637809c6dc6dfc2b3302becd171e30d07f14cac24e0083883b0fa8f
|
| 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 25, 2026.
Transparency logRelease files / libskene-0.3.1-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | libskene-0.3.1-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 3.0 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
9883f5f9788110ab480451046d7888433eab0161cd9fcabb69e7d97f89a3e8a1
|
|
BLAKE2b-256 checksum How to use checksums |
6d95656b3b8eaa0456ff9675d09da659aeda24df7aba224f2458425083a3c494
|
| 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 25, 2026.
Transparency log