keyten
Python bindings for Keyten, a compact Rust dataframe engine that keeps columnar data compressed through whole queries.
Queries stay lazy until collect(), then run entirely in the engine with the GIL released — predicate and projection pushdown, vectorized parallel execution, disk spilling for data bigger than memory, and native-table I/O all happen outside the interpreter.
Install
Keyten supports 64-bit Linux, macOS arm64 (Apple Silicon), and CPython 3.11 or newer. See the installation guide for exact wheel tags and source builds.
pip install keyten
A first query
import keyten as kt
trades = kt.DataFrame([
kt.Series.string("sym", ["a", "b", "a", "b"]),
kt.Series.int("qty", [1, 2, 3, 4]),
])
result = (
trades.lazy()
.filter(kt.col("qty") > 1)
.with_columns((kt.col("qty") * 10).alias("q10"))
.group_by("sym")
.agg([
kt.col("q10").sum(),
kt.col("qty").count().alias("n"),
])
.sort("sym")
.collect()
)
print(result)
What's in the box
- Expressions — arithmetic, comparisons, boolean logic, casts, string operations (substring, regex extract), value recoding, null/NaN shaping, and conditional
if_else. - Aggregations — totals, extrema, sample moments, exact distinct counts, quantiles, and pairwise correlation, per group or whole-frame.
- Windows — cumulative, fixed-row rolling, duration rolling, exponentially weighted, ranking, filling, and partitioned
over(...)evaluation. - Joins — inner, left, semi, anti, and backward/forward/nearest asof joins with by-groups and tolerance.
- Mutation — eager append, upsert, update, and delete; existing lazy plans retain their original snapshot.
- Temporal kinds — dates, timestamps, and times are first-class, parse straight from CSV, and ride the integer encodings.
- Sources —
scan_csv(strict typed inference),scan_parquet(files or directories, statistics-pruned), andscan_native, the engine's own zero-copy, crash-safe table format. - Interop — Arrow PyCapsule import/export with no required Arrow library dependency.
- Scale — out-of-core execution against a self-derived memory budget; nothing to configure.
- Workers — serializable scans can execute remotely or scatter mergeable aggregation across a worker list.
The package ships typed stubs (py.typed), so editors and type checkers see the full API with docstrings.
Documentation
Tutorials, the full API reference, and engine internals live at k10.works/docs.
Copyright
Copyright © 2026 Rayforce Technologies Inc. All rights reserved.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file keyten-0.1.52-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: keyten-0.1.52-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 5.0 MB
- Tags: CPython 3.11+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
177464527869f64f96d44264f0c83ce4870160cccd32958ece5a0ce109116c83
|
|
| MD5 |
b9e59d31c0405d37c0fd3b2b53d65944
|
|
| BLAKE2b-256 |
2e64866609dad3317f619b706eba6408a4b768e66f4fe8a9c8ddd06a09492b7f
|
Provenance
The following attestation bundles were made for keyten-0.1.52-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
py-release.yml on k10works/keyten
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
keyten-0.1.52-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
177464527869f64f96d44264f0c83ce4870160cccd32958ece5a0ce109116c83 - Sigstore transparency entry: 2490112338
- Sigstore integration time:
-
Permalink:
k10works/keyten@a6947bfe8f26458ab765d9520f2d694f50b24c91 -
Branch / Tag:
refs/tags/v0.1.52 - Owner: https://github.com/k10works
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
py-release.yml@a6947bfe8f26458ab765d9520f2d694f50b24c91 -
Trigger Event:
push
-
Statement type:
File details
Details for the file keyten-0.1.52-cp311-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: keyten-0.1.52-cp311-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.11+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
031b3fd567205ce57e14fbaf74512c1d01745a50c03da1a253fbd023c5ae4cf6
|
|
| MD5 |
a037c364fbca9693748ffd24d5a451d5
|
|
| BLAKE2b-256 |
44f64d14337c77868012b2fa32c1b1ad9543c074df9bc703bafb4e43fd8c4af9
|
Provenance
The following attestation bundles were made for keyten-0.1.52-cp311-abi3-macosx_11_0_arm64.whl:
Publisher:
py-release.yml on k10works/keyten
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
keyten-0.1.52-cp311-abi3-macosx_11_0_arm64.whl -
Subject digest:
031b3fd567205ce57e14fbaf74512c1d01745a50c03da1a253fbd023c5ae4cf6 - Sigstore transparency entry: 2490112367
- Sigstore integration time:
-
Permalink:
k10works/keyten@a6947bfe8f26458ab765d9520f2d694f50b24c91 -
Branch / Tag:
refs/tags/v0.1.52 - Owner: https://github.com/k10works
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
py-release.yml@a6947bfe8f26458ab765d9520f2d694f50b24c91 -
Trigger Event:
push
-
Statement type: