Skip to content

Roadmap

angelatgithub edited this page Sep 20, 2026 · 2 revisions

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.

Shipped domains

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.

Ecosystem outreach: meeting libraries where they live

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, then nx.config.backends selects 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.

Academic track

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.

The "beat the natives" rule

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.

Always true, for everything that lands

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.

Request a kernel

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 as drop-in accelerators

Start

Understand

Contribute

Project

Apache-2.0 · © 2026 Algenta

Clone this wiki locally