rusto-rs
Library New
RustO! - Pure Rust OCR library based on RapidOCR with PaddleOCR engine
- Downloads
- 1,618
- Dependents
- 1
- Stars
- 127
- Forks
- 16
- Contributors
- 4
- Commits
- 300
- Latest release
- 0.3.2 ยท
About
High-Performance, Pure Rust OCR Engine & Multi-Platform Toolkit
RustO! is a pure-Rust Optical Character Recognition (OCR) engine and multi-platform toolkit. Powered by DataLab Indra OCR and PaddleOCR models running on RustO's pure-Rust MNN neural inference runtime (rusto-nn) with pluggable RTen and ONNX support, RustO! delivers fast, memory-safe text extraction and document layout understanding with zero C++ or OpenCV dependencies.
Read the full README
๐ฏ Key Features
- Pure Rust MNN Engine (
rusto-nn) โ Zero C++ or OpenCV runtime dependencies. SIMD vectorization (AVX-512, AVX2, NEON, WASM SIMD128) with pluggable RTen, ONNX, and hardware backends (WebGPU, CUDA). Build directly withcargo build. - Flagship Indra OCR + PP-OCRv6 โ DataLab Indra OCR (~5.4 MB, 45.97% OmniDocBench accuracy) by default alongside PP-OCRv6 (50+ languages unified), PP-OCRv5, and PP-OCRv4 (FP32 & INT8).
- End-to-End Document Pipeline โ Built-in 3D UVDoc unwarping, orientation detection, PicoDet layout region classification (
regionId/layoutType), and neural graph reading order (indra_order.rten). - Unified Fluent Builder API โ Consistent
.withAutoUnwarp(),.withLayoutReading(),.asLines()/.asWords()/.asSpatial()/.asTsv(), and single.run()terminal execution across every SDK. - 12 Cross-Platform SDKs + CLI โ First-class libraries for Rust, Node.js, Python, Go, Java, .NET, Dart, Flutter, Web (WASM), React, React Native, iOS, Android, and C FFI, plus the
rustoCLI.
๐ฆ Packages
| Platform | Package | Description |
|---|---|---|
| Rust | cargo add rusto-rs | Pure Rust library and CLI |
| Node.js (N-API) | @rustors/node | Native Node.js N-API addon |
| Python | pip install rusto | UniFFI Python library & wheel |
| Golang | packages/go | Cgo Go module with embedded rpath |
| Java (JVM) | rusto-java (com.github.byrizki.rusto-rs:rusto-java) | Java & Kotlin JNA library via JitPack |
| Dart | rusto | Pure Dart FFI library |
| Flutter | rusto_flutter | Flutter plugin with Android & iOS bridges |
| Web (WASM) | @rustors/web | Browser-native WASM engine |
| React | @rustors/react | React hooks and components |
| React Native | @rustors/react-native | iOS and Android native bridge |
| iOS | Package.swift / pod 'RustO' | Swift Package Manager & CocoaPods |
| Android | rusto-android | Kotlin library & AAR |
| .NET / C# | RustODotnet | Managed .NET library |
| C / Native | librusto.so / .dylib / .dll | C FFI shared libraries |
โ ๏ธ Notable Breaking Changes in v0.4.0
Upgrading from v0.3.x to v0.4.0 introduces a unified fluent builder API, 6-phase pipeline options, pipelined document layout/unwarping, and Indra OCR as the default flagship engine:
| Aspect | v0.3.x | v0.4.0 (Current) |
|---|---|---|
| Default Model | PP-OCRv6 Tiny (~6 MB) | DataLab Indra OCR (~5.4 MB, 45.98% OmniDoc accuracy) |
| Model Assets | Bundled / platform model packages | Decoupled standalone models on Hugging Face Hub with zero-config auto-download |
| API Paradigm | Monolithic detectText(source, options) | Unified fluent builder chaining ending in .run() / .Run() |
| Output Granularity | Separate *Spatial methods | .asLines() / .asWords() / .asSpatial() (as_* / As*) |
| Layout & Unwarp | Disjoint separate engine methods | Pipelined directly via .withLayoutReading(), .withAutoUnwarp() |
| Run Options | Ad-hoc nested options object | 6-Phase structured pipeline + 4 boolean toggles |
| CLI Binary | rusto-rs | rusto (rusto <IMAGE>, rusto ocr, rusto download) |
๐ Read the Complete v0.3 โ v0.4 Migration Guide for code comparisons, API changes, and step-by-step instructions.
๐ Quick Start by Language
1. Rust
use rusto::{DetectTextBuilderExt, ImageSource, InitializeConfig, RustO};
let mut ocr = RustO::initialize(InitializeConfig::default())?;
let result = ocr
.detect_text_builder(ImageSource::Path("document.jpg".into()))
.with_auto_unwarp(true)
.with_layout_reading(true)
.as_lines()
.run()?;
println!("{result:?}");
2. .NET / C#
using RustODotnet;
using var ocr = RustO.Initialize();
var result = ocr.DetectText("invoice.jpg")
.WithAutoUnwarp()
.WithLayoutReading()
.AsLines()
.Run();
if (result is StructuredDetectTextResult structured) {
foreach (var item in structured.Items) {
Console.WriteLine($"{item.Text} ({item.Score:F2})");
}
}
3. Web (WASM / Browser)
npm install @rustors/web
import { initialize, detectText } from '@rustors/web';
await initialize({
preset: 'indra',
models: {
detection: '/models/indraocr/det.rten',
recognition: '/models/indraocr/rec.rten',
dictionary: '/models/indraocr/dict.txt',
},
});
const results = await detectText(document.querySelector('img')!)
.withAutoUnwarp()
.withLayoutReading()
.asLines()
.run();
results.forEach((r) => console.log(`${r.text} (${r.score})`));
4. React
npm install @rustors/react @rustors/web
import { RustoProvider, useOcr } from '@rustors/react';
const models = {
detection: '/models/indraocr/det.rten',
recognition: '/models/indraocr/rec.rten',
dictionary: '/models/indraocr/dict.txt',
};
function OcrScanner() {
const { detect, results, isProcessing } = useOcr();
return (
<div>
<input
type="file"
onChange={(e) =>
e.target.files?.[0] &&
detect(e.target.files[0], { autoUnwarp: true, layoutReading: true })
}
/>
{isProcessing && <p>Scanning...</p>}
{results.map((r, i) => (
<p key={i}>
{r.text} ({r.score.toFixed(2)})
</p>
))}
</div>
);
}
export function App() {
return (
<RustoProvider config={{ preset: 'indra', models }}>
<OcrScanner />
</RustoProvider>
);
}
5. React Native
npm install @rustors/react-native
import { initialize, detectText } from '@rustors/react-native';
await initialize();
const results = await detectText({ uri: 'file:///path/to/image.jpg' })
.withAutoUnwarp()
.withLayoutReading()
.asLines()
.run();
results.forEach((r) => console.log(`${r.text} (${r.score})`));
6. iOS (Swift)
let ocr = try RustO.initialize()
let result = try ocr.detectText(image: "receipt.jpg")
.withAutoUnwarp()
.withLayoutReading()
.asLines()
.run()
if case .structured(let items) = result {
items.forEach { print("\($0.text) (\($0.score))") }
}
7. Android (Kotlin)
RustO.initialize(context).use { ocr ->
val result = ocr.detectText("/path/to/image.jpg")
.withAutoUnwarp()
.withLayoutReading()
.asLines()
.run()
if (result is DetectTextResult.Structured) {
result.items.forEach { println("${it.text} (${it.score})") }
}
}
8. Node.js (N-API)
npm install @rustors/node
const { RustO } = require('@rustors/node');
const engine = RustO.initialize();
const results = engine
.detectText('invoice.png')
.withAutoUnwarp()
.withLayoutReading()
.asLines()
.run();
results.forEach((r) => console.log(`${r.text} (${(r.score * 100).toFixed(1)}%)`));
engine.close();
9. Python (UniFFI)
pip install rusto
from rusto import RustO
with RustO.initialize() as engine:
result = (
engine.detect_text("invoice.png")
.with_auto_unwarp()
.with_layout_reading()
.as_lines()
.run()
)
if result.is_STRUCTURED():
for item in result.results:
print(f"{item.text} ({item.score:.2f})")
10. Golang (Cgo)
go get github.com/byrizki/rusto-rs/packages/go
package main
import (
"fmt"
"github.com/byrizki/rusto-rs/packages/go"
)
func main() {
engine, err := rusto.Initialize()
if err != nil { panic(err) }
defer engine.Close()
res, err := engine.DetectText("invoice.png").
WithAutoUnwarp(true).
WithLayoutReading(true).
AsLines().
Run()
if err != nil { panic(err) }
for _, r := range res.Results {
fmt.Printf("[%0.2f] %s\n", r.Score, r.Text)
}
}
11. Java (JVM / JNA)
import com.byrizki.rusto.RustO;
import com.byrizki.rusto.TextResult;
public class App {
public static void main(String[] args) {
try (RustO engine = RustO.initialize()) {
RustO.DetectTextResult res = engine.detectText("invoice.png")
.withAutoUnwarp()
.withLayoutReading()
.asLines()
.run();
for (TextResult r : res.results()) {
System.out.printf("[%0.2f] %s%n", r.score(), r.text());
}
}
}
}
12. Dart & Flutter
import 'package:rusto/rusto.dart';
final engine = RustO.initialize();
final result = engine
.detectText('invoice.png')
.withAutoUnwarp()
.withLayoutReading()
.asLines()
.run();
if (result is DetectTextResultStructured) {
for (final line in result.results) {
print('${line.text} (${line.score})');
}
}
engine.close();
13. Command Line Interface (CLI)
# Zero-config OCR (auto-downloads Indra OCR models on first run)
rusto image.jpg
# Multi-column layout reading order & 2D spatial text reconstruction
rusto --enable-unwarp --enable-layout --format spatial image.jpg
# Pre-download standalone RTen models for offline environments
rusto download --model indraocr
๐ง Supported OCR Models & Tiers
RustO! supports DataLab Indra OCR as its default flagship engine alongside PP-OCRv6 (recognizing 50+ languages simultaneously) and legacy v5/v4 models:
| Model / Tier | Standard (FP32) | Quantized (INT8) | Best For |
|---|---|---|---|
| Indra OCR (Default) | ~5.5 MB | โ | Flagship default: 2.5x faster (439 ms OmniDocBench), superior Latin/ID |
| PP-OCRv6 Tiny | ~6.0 MB | ~3.4 MB | Lightweight edge, WASM, and IoT |
| PP-OCRv6 Small | ~30 MB | ~16.2 MB | Balanced accuracy for mobile & desktop |
| PP-OCRv6 Medium | ~134 MB | ~75.7 MB | Server-grade accuracy workloads |
| PP-OCRv5 / v4 | ~23โ28 MB (Mobile) | โ | Legacy pipelines & single-language packs |
Pre-trained models are distributed as standalone assets on Hugging Face Hub (byrizki/rusto-models) with native CORS support and downloaded automatically on first run by the CLI and native SDKs.
๐ View Complete Multilingual OCR Guide & Model Matrix
โ๏ธ Configuration & Runtime Options
RustO separates static initialization from per-request execution:
InitializeConfigโ Configures model sessions, vocabulary dictionary, and hardware threads.DetectTextBuilder/OcrRunOptionsโ Configures per-image options via fluent chaining: 4 toggles (autoUnwarp,layoutReading,orientationDetection,lineClassification) and 6 phases (preDetection,detection,postDetection,preRecognition,recognition,postRecognition).
use rusto::{DetectTextBuilderExt, ImageSource, InitializeConfig, RustO};
// 1. Initialize engine once (or RustO::initialize(InitializeConfig::default())? for auto-download)
let mut ocr = RustO::initialize(InitializeConfig::indra(
"models/det.rten",
"models/rec.rten",
"models/dict.txt",
))?;
// 2. Configure per request via fluent builder chaining
let result = ocr
.detect_text_builder(ImageSource::Path("document.jpg".into()))
.with_auto_unwarp(true)
.with_layout_reading(true)
.as_spatial()
.run()?;
๐ Read the Full API Reference & Option Specifications
๐ Documentation & Advanced Guides
Explore deep-dive guides and comprehensive references on the RustO! Documentation Site:
| Topic | Description | Link |
|---|---|---|
| Models & Tiers Architecture | Model formats (.rten, .onnx), INT8 quantization, and pluggable InferenceSession engines | Read Guide |
| Multilingual OCR | 50+ languages support, scripts matrix, and dedicated PP-OCRv5/v4 language packages | Read Guide |
| Spatial Layout Reconstruction | 2D XY spatial layout reconstruction for invoices, receipts, and multi-column tables | Read Guide |
| Image Preprocessing & Tuning | DBNet binarization thresholds, polygon unclipping, morphological dilation, and dimension limits | Read Guide |
| Multi-Column, Unwarp & Orientation | Multi-column layout, neural reading order, 3D UVDoc unwarping, and orientation | Read Guide |
| Decoded RGB Input | Zero-copy direct OCR from uncompressed interleaved RGB8 pixel buffers | Read Guide |
| Performance & Benchmarks | Latency, memory footprint, and parity benchmarks across x86-64, ARM64, and mobile | Read Guide |
| Troubleshooting Guide | Resolving model paths, Android JNI linking, React Native pods, and high-resolution camera OOM | Read Guide |
| v0.3 โ v0.4 Migration Guide | Upgrading to fluent builder API, 6-phase pipeline, Indra OCR default, and decoupled .rten models | Read Guide |
| API Reference | Specifications for InitializeConfig, OcrRunOptions, and TextResult across all platforms | API Reference |
โก Performance & Benchmarks
Empirically evaluated against official PaddleOCR and RapidOCR (C++ ONNX Runtime) using the standard OmniDocBench dataset and high-resolution document scans (1600ร993 px, 27 text lines).
Benchmark Hardware: 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz (4 cores / 8 threads), 32 GB RAM, Linux x86_64.
| Capability / Metric | RustO! (Pure Rust Core) | OpenCV / C++ Stacks (RapidOCR / PaddleOCR) | Benchmark Reference |
|---|---|---|---|
| CLI Binary Size (Self-Contained) | โ
4.5 MB (rusto) / 8.3 MB (rusto-rten) | โ ~55 MB+ (libopencv + onnxruntime) | Production Linux x86-64 release |
C FFI Shared Library (librusto.so) | โ 304 KB | โ ~15โ30 MB | Stripped release .so |
| Android Native Size (Per-ABI) | โ ~1.8 MB | โ ~20 MB+ (libopencv.so + ONNX) | Android release AAR |
| WebAssembly (WASM) Bundle | โ
238 KB (gzipped rusto-nn WASM) | โ 3.78 MB (gzipped ONNX Runtime WASM) | Web client bundle size |
| Zero External C++ Dependencies | โ
Pure Rust (cargo build) | โ Requires CMake, OpenCV & NDK | Toolchain build dependencies |
| Peak Memory (OmniDocBench) | โ 178.0 MB - 253.1 MB | โ 392.5 MB (RapidOCR) / 659.3 MB (PaddleOCR) | OmniDocBench full dataset peak RSS |
| Document Pipeline (1600ร993 px) | โก 678.08 ms (Det: 312 ms, Rec: 169 ms, 27 lines) | โก 447.83 ms (C++ ONNX Runtime) | Base pipeline end-to-end benchmark |
| OmniDocBench Mean Latency | โก 976.0 ms (Tiny) / 1,054.7 ms (Indra) | โก 605.3 ms (PaddleOCR) / 1,011.5 ms (RapidOCR) | OmniDocBench full evaluation |
| Transcription Parity (High-Res Scan) | ๐ฏ 100% token identical across all 27 lines | ๐ฏ Baseline reference | Character-for-character comparison |
| OmniDocBench Baseline Accuracy (1 - NED) | ๐ฏ 45.41% (Tiny) / 45.97% (Indra) | ๐ฏ 45.33% (PaddleOCR Tiny) / 44.84% (RapidOCR) | Standard 1D reading order |
| Full Pipeline Accuracy (Reading Order) | ๐ฏ 63.75% (RustO Indra Full) | ๐ฏ 63.76% (Indra Official) / 57.18% (Paddle Structure) | Graph neural reading order |
| Memory & Thread Safety | โ Guaranteed by Rust borrow checker | โ Manual pointers & thread locks | Data-race free concurrency |
๐ Repository Structure
rusto-rs/
โโโ crates/
โ โโโ rusto-nn/ # Pure-Rust neural inference runtime & hardware backends
โ โโโ rusto-core/ # Core OCR pipeline (DBNet, CTC, UVDoc unwarp, PicoDet layout, reading order)
โ โโโ rusto-rten/ # RTen (.rten) session backend
โ โโโ rusto-mnn/ # Optional MNN C++ session backend
โ โโโ rusto-node/ # Native Node.js N-API addon crate
โ โโโ rusto-wasm/ # Browser WebAssembly OCR & layout runtime
โโโ src/ # Workspace root crate, UniFFI/C FFI bridges & `rusto` CLI
โโโ include/ # Canonical C header (`rusto.h`)
โโโ packages/
โ โโโ node/ # @rustors/node (Node.js N-API SDK)
โ โโโ python/ # rusto (Python UniFFI SDK)
โ โโโ go/ # Go Cgo module
โ โโโ java/ # rusto-java (JVM JNA SDK)
โ โโโ dotnet/ # RustODotnet (.NET / C# SDK)
โ โโโ dart/ # rusto (Pure Dart FFI SDK)
โ โโโ flutter/ # rusto_flutter (Flutter plugin)
โ โโโ web/ # @rustors/web (Browser WASM SDK)
โ โโโ react/ # @rustors/react (React hooks & components)
โ โโโ react-native/ # @rustors/react-native (iOS & Android bridge)
โ โโโ android/ # rusto-android (Kotlin Android AAR)
โ โโโ ios/ # RustO (Swift Package Manager & CocoaPods)
โโโ docs/ # Bilingual documentation site & live WASM demo (EN / ID)
โโโ scripts/ # Version bump, UniFFI codegen & package verification scripts
โโโ .github/workflows/ # CI, cross-platform artifact build & automated registry publishing
๐ ๏ธ Development & Testing
# Run core library unit tests across the workspace
cargo test --workspace --lib
# Build the `rusto` CLI in release mode
cargo build --release --bin rusto
# Run linter & formatter
cargo clippy --workspace
cargo fmt --check
๐ก๏ธ Security & Snyk Partnership
RustO! is a community-driven open source project protected and monitored with the support of the Snyk Open Source Program. Snyk provides automated developer security tooling to detect, track, and remediate vulnerabilities across our Rust engine, dependencies, container environments, and multi-platform packages.
- Vulnerability Status:
- Reporting Vulnerabilities: If you discover a security issue or vulnerability, please refer to our Security Policy for responsible disclosure steps.
- Co-branding Grant: We hereby grant Snyk permission and a non-exclusive license to use, reproduce, and display the RustO! project logo and related project content on Snyk's website and marketing materials in accordance with the Snyk Open Source Program.
๐ License
This project is licensed under the MIT License.
๐ Acknowledgments
RustO! is inspired by and builds upon the work of:
- DataLab โ Creators of Indra OCR models and the OmniDocBench evaluation dataset
- RapidOCR โ Architecture and OCR pipeline reference
- PaddleOCR โ Pretrained OCR models (PP-OCRv6, PP-OCRv5, PP-OCRv4)
- Alibaba MNN โ Pioneered efficient mobile deep learning formats, executed natively in pure Rust via
rusto-nn - RTen โ Pure Rust deep learning inference engine supported in RustO!
- Snyk โ Developer security and vulnerability monitoring through the Snyk Open Source Program
- Rust Community โ
image,imageproc,nalgebra, andrayoncrates
๐ Citation
If you use RustO! in your research or commercial application, please consider citing:
@software{rusto2024,
title = {RustO! - High-Performance Pure Rust OCR Library},
author = {Rizki & Contributors},
year = {2024},
url = {https://github.com/byrizki/rusto-rs},
note = {Based on RapidOCR and powered by PaddleOCR models with pure Rust MNN (rusto-nn) inference}
}
Compatibility
- Runs on
- CUDA, Metal, Vulkan
What shows it
- CUDA: rusto-rs feature cuda, rusto-mnn feature cuda, rusto-mnn-sys feature cuda
- Metal: rusto-rs feature metal, rusto-mnn feature metal, rusto-mnn-sys feature metal
- Vulkan: rusto-rs feature vulkan, rusto-mnn feature vulkan, rusto-mnn-sys feature vulkan
- Native code
- Required
- Binds native code: rusto-mnn-sys
- Build uses a native toolchain: bindgen, cc, cmake
- Python bindings
- No Python binding crate found
- License
- MIT
Compare with similar projects
Order: strongest tier first, then most downloads, then name, with unmeasured values last. A library counts downloads over 30 days. An app counts binary downloads per release. An app with none counts its crate downloads over 30 days.
| Project | Downloads | Dependents | Stars | Latest release | Runs on (GPU) | Native code | License |
|---|---|---|---|---|---|---|---|
|
RustO! - Pure Rust OCR library based on RapidOCR with PaddleOCR engine |
1,618 downloads over 30 days | 1 | 127 | 0.3.2 | CUDA, Metal, Vulkan | Binds native code: rusto-mnn-sys. Build uses a native toolchain: bindgen, cc, cmake | MIT |
|
ocrs Featured
OCR engine |
196,739 downloads over 30 days | 20 | 1,915 | 0.13.1 | GPU support unknown | No native code found | Apache-2.0 OR MIT |
|
oar-ocr Listed
An Optical Character Recognition (OCR) and Document Layout Analysis library written in Rust. |
34,387 downloads over 30 days | 9 | 204 | 0.10.2 | CUDA, WebGPU, Metal | Binds native code: ort-sys | Apache-2.0 |
|
Higher-level bindings for Tesseract OCR |
24,101 downloads over 30 days | 12 | 176 | 0.15.2 | GPU support unknown | Binds native code: tesseract-sys, leptonica-sys | MIT |
|
rust-paddle-ocr Listed
A lightweight and efficient OCR library based on PaddleOCR models, using the MNN inference framework for high-performance text detection and recognition |
2,742 downloads over 30 days | 5 | 346 | 2.4.1 | CUDA, Metal, Vulkan | Build uses a native toolchain: bindgen, cc, cmake | Apache-2.0 |
|
franken_ocr New
Pure-Rust, CPU-hyper-optimized runner for the Baidu Unlimited-OCR model (single-binary CLI: focr) |
40 downloads over 30 days | 0 | 346 | 0.9.0 | GPU support unknown | No native code found | Not measured |
Why NewIts first release on 12 Aug 2026 is under 180 days old.
The check tests the Featured gates once the first release passes this age limit.
What else the check found
- The last activity is on 7 Nov 2026, 2 days ago. The rules expect an update within 365 days. Dormancy rule
Exact rules: New. The check on applied thresholds version 9.
Every rule outcome, as the check records it
expected-interval: version 0.3.2 base 300, raised to the 365-day floor: E = 365 daysdormancy: last activity 2026-11-07, 2 days ago, E = 365: activenew: new: first release 2026-08-12 is under 180 days old
Crates3 crates
- rusto-rs Primary
- rusto-mnn
- rusto-mnn-sys
Measurements and sources
Each signal row shows the raw value, its source and the fetch date. The Sources list gathers every distinct source on this page. Movement needs more history.
Sources6 sources
- Description: the crates.io description
- crates.io database dump, fetched
- RustSec advisory database, fetched
- GitHub repository, fetched
- crates.io package, fetched
- GitHub contributors, fetched
Adoption1 active dependents, 1 new dependents in 365 days1 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Active dependents | 1 | crates.io database dump | Yes | |
| New dependents (365 days) | 1 | crates.io database dump | Yes | |
| Peak active dependents | 1 | crates.io database dump | Yes | |
| Active dependents as a share of the peak | 1 | crates.io database dump | Yes | |
| Binary downloads per release | Not measured | Yes |
MaintenanceLatest human commit: 2 days ago3 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Latest human commit | 2026-11-07 | GitHub repository | Yes | |
| Latest release | 2026-10-25 | crates.io database dump | Yes | |
| First release | 2026-08-12 | crates.io database dump | Yes | |
| Latest version | 0.3.2 | crates.io database dump | Yes | |
| Days the oldest outside issue waits for a reply | 0 | GitHub repository | Yes | |
| Maintainer replies over 365 days | 15 | GitHub repository | Yes | |
| Repository archived | false | GitHub repository | Yes | |
| Repository gone | false | GitHub repository | Yes | |
| Release commit or manifest in the repo | true | crates.io package | Yes | |
| Published docs | true | crates.io database dump | Yes | |
| Latest release fails cargo check | Not measured | Yes | ||
| Build check date | Not measured | Yes | ||
| Build check toolchain | Not measured | Yes |
SecurityUnpatched vulnerabilities: none
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Unpatched vulnerabilities past the grace window | none | RustSec advisory database | Yes | |
| RustSec unmaintained advisory | none | RustSec advisory database | Yes | |
| Deprecation notice | none | crates.io database dump | Yes | |
| Deprecated requirement | none | crates.io database dump | Yes |
Distribution12 releases, 1,618 downloads over 30 days5 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Releases | 12 | crates.io database dump | Yes | |
| Downloads over 30 days | 1618 | crates.io database dump | Yes | |
| Binary downloads over the last 3 releases | Not measured | Yes | ||
| Homebrew installs on request over 365 days | Not measured | Yes | ||
| Repology repository families | Not measured | Yes | ||
| Docker pull growth over 90 days | Not measured | Yes | ||
| Docker pulls at the growth baseline | Not measured | Yes | ||
| Every version a prerelease | false | crates.io database dump | Yes | |
| Every version 0.0.x | false | crates.io database dump | Yes | |
| Every version yanked | false | crates.io database dump | Yes | |
| Crate deleted from crates.io | false | crates.io database dump | Yes |
Repository127 stars, 16 forks, 4 contributors, 300 commits. Stars alone never qualify a project.
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| GitHub stars | 127 | GitHub repository | Yes โ one part of the repository route | |
| GitHub forks | 16 | GitHub repository | Yes โ one part of the repository route | |
| Contributors with a GitHub account | 4 | GitHub contributors | Yes โ one part of the repository route | |
| Commits on the default branch | 300 | GitHub repository | No | |
| Repository's main crate left out of the entry | none | crates.io database dump | Yes |
Facts that never count
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| License | MIT | crates.io database dump | No | |
| Runs on, from listed crates and their direct dependencies | CUDA, Metal, Vulkan | crates.io database dump | No | |
| What shows each backend | CUDA: rusto-rs feature cuda, rusto-mnn feature cuda, rusto-mnn-sys feature cuda; Metal: rusto-rs feature metal, rusto-mnn feature metal, rusto-mnn-sys feature metal; Vulkan: rusto-rs feature vulkan, rusto-mnn feature vulkan, rusto-mnn-sys feature vulkan | crates.io database dump | No | |
| Native code, from listed crates and their dependencies | Binds native code: rusto-mnn-sys. Build uses a native toolchain: bindgen, cc, cmake | crates.io database dump | No | |
| Python bindings, from direct dependencies of listed crates | No Python binding crate found | crates.io database dump | No | |
| Crates that depend on a listed crate directly | 1 | crates.io database dump | No |
Corrections and review history
No correction applies to this entry.
Judgments
A judgment enters only through an approved issue and a merged pull request.
No judgment applies to this entry.