Repository navigation
Releases: software-mansion/runntime
Release list
v0.1.0 🏃
Announcing ruNNtime zoo v0.1.0: very fast on-device AI for the web 🏃
ruNNtime zoo runs AI models on the user's own GPU, in the browser, Electron and React Native. It is built on top of TypeGPU, so the kernels ship as WGSL shaders instead of a WASM binary.
It provides a set of ready-to-use, highly optimized AI models. The models are composed out of bare ML primitives from runntime/core, the engine we're building underneath (expect it soon 👀)
const detector = await createObjectDetector(models.objectDetection.YOLO26.DEFAULT);
const objects = await detector.detectObjects(image);Model coverage
| Task | Factory | Models |
|---|---|---|
| Text embedding | createTextEmbedder |
all-MiniLM-L6-v2, 384 dims |
| Speech to text | createSpeechToText |
Moonshine tiny, base, streaming tiny |
| Privacy filter | createPrivacyFilter |
OpenAI privacy-filter, int8 |
| Object detection | createObjectDetector |
YOLO26 n, s, m (COCO-80) |
| Instance segmentation | createInstanceSegmenter |
YOLO26-seg n, s, m |
| Pose and keypoints | createKeypointDetector |
YOLO26-pose n, s, m (17 landmarks) |
| Depth estimation | createDepthEstimator |
DepthART s, b |
| Image classification | createImageClassifier |
MobileNetV4-Conv-S (ImageNet-1k) |
Performance
Full methodology and more benchmarks are available on the benchmarks page.
| Workload | ruNNtime | transformers.js |
|---|---|---|
| Moonshine tiny, speech to text | 89x realtime | 33x (fp32), 34x (q4) |
| all-MiniLM-L6-v2, batch of 32 | 2.7 ms per paragraph | 11.3 ms (fp32), 8.3 ms (fp16) |
| MobileNetV4, classification | 2.4 ms per image | 10.9 ms (fp32) |
A new backend for transformers.js
transformers.js executes its models on ONNX Runtime. ruNNtime registers as a second backend alongside it, so the library stays in charge: your pipeline() calls, model ids, tokenizers and pre and post processing are untouched, and supported models simply execute on ruNNtime kernels instead. For more information, see the docs section.
await initRunntimeBackend({ fallbackToOnnx: true });
const pipe = await pipeline('feature-extraction', 'Xenova/all-MiniLM-L6-v2');