amigo-native.
Rust-powered drop-in replacements for popular Node.js packages.
Compiled to native addons via NAPI-RS. Prebuilt for every major platform.
See the speedup, not just the claim
Benchmark
argon2 - hash (low-cost)
- @amigo-labs/argon2 325 hz · 2.32×
- argon2 (npm, C-bindings) 242 hz · 1.72×
- hash-wasm (WASM) 140 hz
Packages
36 packages across 7 categories.
Crypto · 4
- crypto Node only1.35× faster
Argon2
Argon2id password hashing with sync + async API.
@amigo-labs/argon2 - crypto Node only1.53–4.2× faster
JOSE
Ed25519 JWK generation and RFC 7638 thumbprints. JWE roadmap.
@amigo-labs/jose - crypto Node onlyup to 8.3× faster / 3.3× slower
JWT
JWT sign, verify, and decode via the jsonwebtoken Rust crate.
@amigo-labs/jwt - crypto Node + Browsernapiup to 6.6× faster / 3.4× slower
XXHash
XXH32, XXH64, and XXH3 with batch + streaming support.
@amigo-labs/xxhash
Text · 10
- text Node + Browsernapi2.8–13× faster
CommonMark
CommonMark + GFM renderer powered by pulldown-cmark.
@amigo-labs/commonmark - text Node + Browserup to 32× faster / 1.67× slower
Encoding
Character encoding conversion powered by Mozilla's encoding_rs.
@amigo-labs/encoding - text Node + Browser1.73–8.1× faster
Language Detect
Language detection powered by whatlang. Paragraph-size Green, short-string Red by design.
@amigo-labs/language-detect - text Node + Browser2–5× expected vs JS FSM
linkify-it
Find URLs and emails in text. Offset-packed Uint32Array fast path for batch / render-loop workloads.
@amigo-labs/linkify-it - text Node + Browser1.7–3.7× faster
Sanitize HTML
HTML sanitization via Mozilla's ammonia engine.
@amigo-labs/sanitize-html - text Node + BrowserTBD
Sentences
Multi-language sentence boundary detection. String or offset-packed output for hot paths.
@amigo-labs/sentences - text Node + Browsernapi2.6–5.5× faster
Slugify
Unicode-aware slugification. Wraps deunicode + unicode-normalization.
@amigo-labs/slugify - text Node + Browsernapi7–7.9× faster
Stemmer
Porter/Snowball stemming via rust-stemmers. Batch-only API — single-word calls are intentionally not exposed.
@amigo-labs/stemmer - text Node + Browsernapiup to 2.6× faster / 4.7× slower
Text Splitters
RAG text splitters (recursive-character + markdown-aware), with native tiktoken length.
@amigo-labs/text-splitters - text Node + Browser9.4–16× faster
Turndown
HTML → Markdown via html5ever. Ships CommonMark + GFM tables/strikethrough.
@amigo-labs/turndown
Search · 3
- search Node + Browsernapi13× faster
BM25
BM25 full-text search. Stateful NAPI class — build index once, query many times.
@amigo-labs/bm25 - search Node + Browser5–20× expected vs fuse.js
fuse
Fuzzy text search index over JSON records, with weighted fields. SIMD-accelerated via nucleo-matcher.
@amigo-labs/fuse - search Node + Browsernapi1.2–51× faster
Minisearch
Tiny in-memory full-text search with prefix autocomplete. Shares Rust search-core with @amigo-labs/bm25.
@amigo-labs/minisearch
Document · 9
- document Node + Browsernapi1.49–1.88× faster
CSV
CSV parsing and serialization via BurntSushi's csv crate.
@amigo-labs/csv - document Node + BrowserNative image-rs port
jimp
Scoped jimp port: PNG/JPEG decode/encode + resize + crop + flip + rotate (90° multiples) + greyscale + brightness + contrast + composite, via image-rs.
@amigo-labs/jimp - document Node + BrowserPure-Rust decode/encode
jpeg-js
JPEG decode/encode to RGBA pixel buffers. Pure-Rust via jpeg-decoder + jpeg-encoder.
@amigo-labs/jpeg-js - document Node + BrowserTBD
PDF
PDF generation — one FFI call per document. Labels / tickets / simple reports.
@amigo-labs/pdf - document Node + Browsernapi18–50× slower
PDF Parse
PDF text + metadata extraction via pdf-extract/lopdf. No pdf.js, no browser pipeline.
@amigo-labs/pdf-parse - document Node + BrowserPure-Rust DEFLATE
pngjs
PNG decode/encode to RGBA pixel buffers. Pure-Rust DEFLATE via flate2 + zlib-rs.
@amigo-labs/pngjs - document Node + Browser14–26× faster
Svgo
SVG optimizer via quick-xml. Ships the 8 highest-impact `preset-default` plugins.
@amigo-labs/svgo - document Node + BrowserTBD
Typst
Typst document compiler — source in, PDF out. Bundled Libertinus fonts; offline-only packages.
@amigo-labs/typst - document Node + Browsernapi2.6–3.3× faster
XLSX
XLSX read + write. Buffer in → rows out, rows in → Buffer out. Single-FFI-crossing.
@amigo-labs/xlsx
Archive · 3
- archive Node + Browserup to 11× faster / 1.18× slower
Inflate
zlib deflate/inflate/gzip powered by flate2 + zlib-rs.
@amigo-labs/inflate - archive Node + Browsernapiup to 12× faster / 2.2× slower
ZIP
ZIP archive read/write via the zip Rust crate.
@amigo-labs/zip - archive Node + Browserlibzstd via reused context
zstd
Zstandard compress/decompress via libzstd, with reusable Compressor / Decompressor contexts and trained-dictionary support.
@amigo-labs/zstd
Util · 5
- util Node + Browser2.9–6.3× faster
Deepmerge
Recursive object merge for JSON-safe values.
@amigo-labs/deepmerge - util Node + Browsernapiup to 26× faster / 3× slower
Diff
Myers/Patience diff via `similar`. Drop-in-shape with an offset-packed hot-path for char-level and large-input cases.
@amigo-labs/diff - util Node + Browsernapi22–1179× faster
File Type
Magic-byte file-type detection via the Rust infer crate.
@amigo-labs/file-type - util Node + BrowserBit-identical to upstream
pixelmatch
Pixel-level RGBA image diff with YIQ delta + anti-aliasing detection, bit-identical to mapbox/pixelmatch.
@amigo-labs/pixelmatch - util Node + BrowserBundled IANA PSL
tldts
Parse domain / public suffix / subdomain from a hostname or URL. Bundled IANA PSL + idna; batch parseMany API.
@amigo-labs/tldts
Graph · 2
- graph Node + Browsernapi3.6–7.2× faster
Force Layout
Force-directed graph simulation. Batch-mode d3-force replacement for SSR / precompute workloads.
@amigo-labs/force-layout - graph Node + Browsernapi62–75× faster
Graph Layout
Hierarchical (Sugiyama-style) DAG layout. Single-call spec → positions + edge routing.
@amigo-labs/graph-layout