-
Notifications
You must be signed in to change notification settings - Fork 0
Roadmap
The factory is built for repetition: more clean-room kernels targeting popular pure-Python and pure-JavaScript hot loops land on main continuously, each with the same guarantees — differential parity on both backends, measured cold + warm benchmarks, self-contained per-platform packages, and a pure-language fallback everywhere. This page is where it's heading.
Text retrieval and search (bm25, fuse, minisearch, langdetect, vader, sacrebleu), JSON/query/validation (jsonschema, jmespath, jsonpath, toml), scientific Python (cclib, ASE, ObsPy, Elephant, MetPy, uproot, Biopython, pykalman, ruptures, dynesty, nx), and utilities (croniter, ta, pypdf filters, ckmeans, natural). The full table: Kernels.
Drop-in packages are the wedge; upstream integration is the destination. Two active tracks:
-
pypdf optional extra.
pypdf-filters-mojo(12–15× predictor decode, 809–1,776× LZW) is shaped to be pitchable as an optional acceleration extra for pypdf itself — same decoded bytes, asserted; users who can't use native wheels simply never install the extra and keep pypdf's pure-Python path. That is the model for libraries with a hard no-native-dependency policy. -
networkx backend.
nx-mojo(19.9–40× betweenness centrality) targets networkx's official backend-dispatch mechanism:pip install nx-mojo, thennx.config.backendsselects it — no fork, no monkeypatching, and networkx's own API remains the user surface. The Dijkstra lowlight (1.2–2.1×) is published alongside, because dispatch only makes sense where the backend actually wins.
Both tracks follow the same rule: the reference project keeps full control of its API; the kernel is an installable option, never a dependency.
Several landed kernels serve research software with citeable upstreams — cclib (computational chemistry), uproot (HEP), ObsPy (seismology), Elephant (neuroscience), ASE (atomistic simulation), MetPy (meteorology) — and the repo carries a JOSS paper outline for cclib-mojo (docs/joss-cclib-mojo-outline.md). Each of these packages ships a "Citing" section: cite both the upstream project and the mojo-kernels package. If you use one in academic work, that dual citation is how the upstream projects see the value and bless the integration.
A kernel may claim victory only after measuring against the fastest credible incumbent, not just the pure-language reference — and the result gets published either way. Precedents on main:
-
bm25-mojo vs bm25s (numba): v2 wins every cell warm (1.10×–1.95×) plus 10–1000× cold — full autopsy in
benchmarks/AUTOPSY-bm25s.md. - cclib-mojo vs pyquante2: the honest 72× against cclib's fastest shipping backend, next to the 7,033× against the Python-2-era path. The small number is the headline we lead with.
- jmespath-mojo: loses its own benchmark (0.01–1.1×). Shipped anyway — for exact parity and the fallback — with the serialization autopsy in the README.
New kernels inherit this rule: an autopsy of the incumbent, a two-baseline comparison where a native incumbent exists, and no cherry-picked cells.
Differential parity on both backends · seeded benchmarks with cold + warm numbers · per-platform self-contained packaging · vendored fallback everywhere · clean-room only. Watch the repo or check the catalog — the table grows as each kernel lands.
Open an issue on thyn-ai/mojo-kernels with the target library, a profile showing the pure-language hot loop, and the workload shape you care about. The selection bar is in Writing a Kernel — contributions following it are welcome.
Apache-2.0, © 2026 Algenta
mojo-kernels — clean-room Mojo kernels, differential-tested on both backends, pure-language fallback everywhere. Apache-2.0, © 2026 Algenta. Reference packages are test/benchmark oracles, never runtime dependencies.
mojo-kernels — clean-room Mojo kernels as drop-in accelerators
Start
Understand
Contribute
Project
Apache-2.0 · © 2026 Algenta