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/argon2325 hz·2.32×
- argon2 (npm, C-bindings)242 hz·1.72×
- hash-wasm (WASM)140 hz
Packages
36 packages across 7 categories.
Crypto· 4
- cryptoNode only1.35× faster
Argon2
Argon2id password hashing with sync + async API.
@amigo-labs/argon2 - cryptoNode only1.53–4.2× faster
JOSE
Ed25519 JWK generation and RFC 7638 thumbprints. JWE roadmap.
@amigo-labs/jose - cryptoNode onlyup to 8.3× faster / 3.3× slower
JWT
JWT sign, verify, and decode via the jsonwebtoken Rust crate.
@amigo-labs/jwt - cryptoNode + Browsernapiup to 6.6× faster / 3.4× slower
XXHash
XXH32, XXH64, and XXH3 with batch + streaming support.
@amigo-labs/xxhash
Text· 10
- textNode + Browsernapi2.8–13× faster
CommonMark
CommonMark + GFM renderer powered by pulldown-cmark.
@amigo-labs/commonmark - textNode + Browserup to 32× faster / 1.67× slower
Encoding
Character encoding conversion powered by Mozilla's encoding_rs.
@amigo-labs/encoding - textNode + Browser1.73–8.1× faster
Language Detect
Language detection powered by whatlang. Paragraph-size Green, short-string Red by design.
@amigo-labs/language-detect - textNode + 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 - textNode + Browsernapi1.35–3.6× faster
Sanitize HTML
HTML sanitization via Mozilla's ammonia engine.
@amigo-labs/sanitize-html - textNode + Browsernapiup to 3.4× faster / 3.9× slower
Sentences
Multi-language sentence boundary detection. String or offset-packed output for hot paths.
@amigo-labs/sentences - textNode + Browsernapi2.6–5.5× faster
Slugify
Unicode-aware slugification. Wraps deunicode + unicode-normalization.
@amigo-labs/slugify - textNode + Browsernapi7–7.9× faster
Stemmer
Porter/Snowball stemming via rust-stemmers. Batch-only API — single-word calls are intentionally not exposed.
@amigo-labs/stemmer - textNode + 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 - textNode + Browser9.4–16× faster
Turndown
HTML → Markdown via html5ever. Ships CommonMark + GFM tables/strikethrough.
@amigo-labs/turndown
Search· 3
- searchNode + Browsernapi13× faster
BM25
BM25 full-text search. Stateful NAPI class — build index once, query many times.
@amigo-labs/bm25 - searchNode + 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 - searchNode + 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
- documentNode + Browsernapi1.49–1.88× faster
CSV
CSV parsing and serialization via BurntSushi's csv crate.
@amigo-labs/csv - documentNode + 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 - documentNode + BrowserPure-Rust decode/encode
jpeg-js
JPEG decode/encode to RGBA pixel buffers. Pure-Rust via jpeg-decoder + jpeg-encoder.
@amigo-labs/jpeg-js - documentNode + BrowserTBD
PDF
PDF generation — one FFI call per document. Labels / tickets / simple reports.
@amigo-labs/pdf - documentNode + Browsernapi15–41× slower
PDF Parse
PDF text + metadata extraction via pdf-extract/lopdf. No pdf.js, no browser pipeline.
@amigo-labs/pdf-parse - documentNode + BrowserPure-Rust DEFLATE
pngjs
PNG decode/encode to RGBA pixel buffers. Pure-Rust DEFLATE via flate2 + zlib-rs.
@amigo-labs/pngjs - documentNode + Browser14–26× faster
Svgo
SVG optimizer via quick-xml. Ships the 8 highest-impact `preset-default` plugins.
@amigo-labs/svgo - documentNode + BrowserTBD
Typst
Typst document compiler — source in, PDF out. Bundled Libertinus fonts; offline-only packages.
@amigo-labs/typst - documentNode + 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
- archiveNode + Browserup to 11× faster / 1.18× slower
Inflate
zlib deflate/inflate/gzip powered by flate2 + zlib-rs.
@amigo-labs/inflate - archiveNode + Browsernapiup to 12× faster / 2.2× slower
ZIP
ZIP archive read/write via the zip Rust crate.
@amigo-labs/zip - archiveNode + Browserlibzstd via reused context
zstd
Zstandard compress/decompress via libzstd, with reusable Compressor / Decompressor contexts and trained-dictionary support.
@amigo-labs/zstd
Util· 5
- utilNode + Browser2.9–6.3× faster
Deepmerge
Recursive object merge for JSON-safe values.
@amigo-labs/deepmerge - utilNode + 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 - utilNode + Browsernapi22–1179× faster
File Type
Magic-byte file-type detection via the Rust infer crate.
@amigo-labs/file-type - utilNode + BrowserBit-identical to upstream
pixelmatch
Pixel-level RGBA image diff with YIQ delta + anti-aliasing detection, bit-identical to mapbox/pixelmatch.
@amigo-labs/pixelmatch - utilNode + 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
- graphNode + Browsernapi3.6–7.2× faster
Force Layout
Force-directed graph simulation. Batch-mode d3-force replacement for SSR / precompute workloads.
@amigo-labs/force-layout - graphNode + Browsernapi62–75× faster
Graph Layout
Hierarchical (Sugiyama-style) DAG layout. Single-call spec → positions + edge routing.
@amigo-labs/graph-layout