Fast Node.js primitives, powered by Mojo.

GPU-accelerated building blocks for AI apps. Currently in technical preview.

View on GitHub The thesis

Packages

@qkstat/retrieve

pre-release

Exact-retrieval RAG primitives on GPU: cached matmul + fused top-k.

Benchmark: 0.06 ms top-10, recall 1.0 (MS-MARCO, H100)

GitHub

@qkstat/embed

pre-release

MiniLM-L6-v2 embeddings on H100 via MAX + Python interop.

Benchmark: 1.44 ms p50 end-to-end, batch-1 seq-32 (H100, synthetic text)

GitHub

Pre-release. Both build from source today with Mojo + pixi. npm distribution is in progress for @qkstat/retrieve; @qkstat/embed currently runs in-repo and is not packaged for npm. Follow the repo for updates.

Why Mojo? — the kernel-factory

Two Mojo addons load into the same Node process, each with its own CUDA context, composing at runtime. Neither napi-rs nor a bundled GPU vector DB does this. @qkstat/embed handles inference (MAX + Python interop); @qkstat/retrieve handles retrieval (Mojo N-API matmul). They share a Node runtime but not a CUDA context — which is what makes the composition clean.

Node.js branching into @qkstat/embed and @qkstat/retrieve, each with its own GPU context, both landing on an H100.
Two Mojo addons, two CUDA contexts, one Node process.

What's built so far