@jawcode-dev/natives
Native Rust functionality via N-API.
What's Inside
- Grep: Regex-based search powered by ripgrep's engine with native file walking and matching
- Find: Glob-based file/directory discovery with gitignore support (pure TypeScript via
globPaths)
- SIXEL: Terminal image encoding for SIXEL-capable terminals (decode, resize, encode in one pass)
General-purpose image processing (decode/resize/encode for files and buffers)
lives in Bun.Image on the JS side; this
crate only ships the SIXEL encoder because no built-in equivalent exists for
that terminal protocol.
Usage
import { grep, find, encodeSixel } from "@jawcode-dev/natives";
const results = await grep({
pattern: "TODO",
path: "/path/to/project",
glob: "*.ts",
context: 2,
});
const files = await find({
pattern: "*.rs",
path: "/path/to/project",
fileType: "file",
});
const sequence = encodeSixel(pngBytes, widthPx, heightPx);
Building
bun run build
bun run check
Architecture
crates/pi-natives/ # Rust source (workspace member)
src/lib.rs # N-API exports
src/sixel.rs # SIXEL terminal-image encoding
Cargo.toml # Rust dependencies
native/ # Native addon binaries
pi_natives.<platform>-<arch>-modern.node # x64 modern ISA (AVX2)
pi_natives.<platform>-<arch>-baseline.node # x64 baseline ISA
pi_natives.<platform>-<arch>.node # non-x64 build artifact
src/ # TypeScript wrappers
native.ts # Native addon loader
index.ts # Public API