Skip to content

The engines under your tools, rebuilt in Rust.

Ferramenta is a family of seven Rust-native engines: a regex engine, a syntax highlighter, a Markdown renderer, a spell checker, a translation catalog engine, a glob matcher and file walker, and a PDF preview renderer. Each follows the standard its field already agreed on, and each works on its own.

Material
Rust
Built to
CommonMark · PO · Glob syntax · PDF (ISO 32000)
Succeeds
Oniguruma · Shiki · Hunspell
Made by
Sebastian Software

Seven engines, each for one job

Every engine works on its own. Where two fit together, the entry says so.

  • ferroni

    Regex engine

    Runs Oniguruma's regular expressions in Rust, lookbehind, backreferences, named groups and Unicode classes included, with the multi-pattern scanner that editors and highlighters drive built in.

    For anyone who needs Oniguruma's syntax in Rust, from editors and highlighters to any search that leans on lookbehind or backreferences.

    Oniguruma is the regex engine behind PHP's mbstring, jq and every TextMate grammar, and its C project ended in April 2025. Ferroni continues the engine in memory-safe Rust, with the vscode-oniguruma scanner built in.

    Succeeds
    Oniguruma / vscode-oniguruma
    Checked against
    Oniguruma compatibility oracle
    Release
    v2.2.3
    Published on
    crates.io

    ferroni.dev

  • ferriki

    Syntax highlighter

    Highlights code with the grammars and themes your editor uses, from Node.js, from Rust, or at build time in Vite.

    For docs sites, blogs, component libraries, and build tools that render code.

    Shiki brought editor-grade highlighting to the web. Ferriki keeps its familiar HTML API and moves the engine to native Rust, without WebAssembly or regex translation, so Rust programs can use it directly and a Vite build can ship highlighted HTML instead of a highlighter.

    Succeeds
    Shiki
    Checked against
    Mirrored Shiki test suite · ahead of Shiki in HTML throughput
    Release
    v1.1.1
    Published on
    crates.io · npm

    ferriki.dev

  • ferromark

    Markdown renderer

    Turns Markdown into HTML, sanitized by default, and is among the fastest engines for the job.

    For static sites, docs pipelines, and any app that renders what people write.

    CommonMark settled what Markdown means. Ferromark carries that contract, plus GFM and sanitized output, into a Rust renderer built for speed.

    Built to
    CommonMark / GFM
    Checked against
    CommonMark & GFM conformance
    Release
    v3.5.0
    Published on
    crates.io · npm

    ferromark.dev

  • Checks spelling in prose and in code, and gives the same suggestions every time.

    For editors, linters, and CI checks.

    Hunspell set the dictionary standard. Ferrolex reads those dictionaries while adding compiled dictionaries, deterministic suggestions, and code-aware checking.

    Succeeds
    Hunspell
    Checked against
    Hunspell oracle · deterministic suggestion scoring
    Release
    v0.4.0
    Published on
    Git

    GitHub repository

  • ferrocat

    Translation catalog engine

    Reads, merges, and compiles translation catalogs.

    For teams whose translations live in the repository.

    gettext taught software to speak in catalogs. Ferrocat carries that model into Git and AI workflows, where merges stay conflict-free and human corrections stay authoritative.

    Built to
    PO / ICU MessageFormat
    Checked against
    Upstream-derived conformance cases · ahead of GNU msgmerge and common PO libraries
    Release
    v3.4.2
    Published on
    crates.io

    ferrocat.dev

  • ferralk (GitHub repository)

    Glob matcher and file walker

    Matches glob patterns and walks file trees in parallel, ahead of globset and fast-glob.

    For build tools, linters, and anything that starts with a file list.

    Every build tool pays for finding files before it does any work. Ferralk keeps zlob's byte-first approach in pure Rust, without Zig or a C ABI, and holds its matcher and walker to a frozen zlob reference.

    Built to
    Glob syntax / .gitignore rules
    Checked against
    Frozen zlob reference · ahead of globset and fast-glob
    Release
    v1.1.0
    Published on
    crates.io

    GitHub repository

  • ferrugo (GitHub repository)

    PDF preview renderer

    Renders previews of PDF files you have no reason to trust.

    For upload pipelines and document viewers.

    PDF previews have traditionally meant embedding a browser-sized engine. Ferrugo takes a narrower path: render untrusted files under explicit resource limits, without PDFium.

    Built to
    PDF (ISO 32000)
    Checked against
    Bounded memory and time · no PDFium
    Release
    v0.5.0
    Published on
    crates.io

    GitHub repository

What the engines carry

Palamedes is built on three of them. It is the family at work in one product.

Palamedes

Internationalization for TypeScript applications

Write messages right where the interface is written, and let a native toolchain extract, validate, merge and compile them. Switch the locale and the copy, plurals, currency and dates change together, in Next.js, Vite, Remix, React Router, TanStack Start, Solid or Waku.

Runs on

  • ferrocatTranslation catalog engine
  • ferromarkMarkdown renderer
  • ferralkGlob matcher and file walker
Visit palamedes.dev

Dalo

Your team's agent setup, versioned like code

Keeps your team's skills, standing instructions and hooks in Git, resolves one approved set, and syncs it into the folders Claude Code, Codex and Cursor already read. Every skill passes a security preflight before it lands on a machine.

From the same workshop. It stands on its own.

Visit dalo.sh

Ardo

Documentation sites built with React

Builds static documentation sites from Markdown and MDX with React components, navigation and search. A rebuild is underway to use Ferromark for Markdown rendering and Ferriki for syntax highlighting.

Planned engine integration

  • ferromarkMarkdown renderer
  • ferrikiSyntax highlighter
Visit ardo-docs.dev

What every engine is held to

  • Proven, not promised

    Where an engine succeeds an established implementation, differential suites measure it against that reference. Claims stay tied to current evidence.

  • Open standards first

    CommonMark, PO files, ICU MessageFormat, Hunspell dictionaries, TextMate grammars. We build on what the ecosystem already agreed on, never on formats only we control.

  • Match before outrun

    Compatibility comes first. Performance claims follow published benchmarks, never a compatibility asterisk.

We’ve been handed good tools all our lives. Time to forge some back.

Sebastian WernerSebastian Software

Open source shaped our careers, from leading qooxdoo at 1&1 to the tools we rely on every day. Ferramenta, Italian for hardware store, is how we give back: one workshop, building the load-bearing parts properly.

Much of that infrastructure was written decades ago, in C or across several languages. Most of what we build is its next generation: the same contracts, designed the way you’d design them for Rust today.

The web’s own toolchain has gone the same way, and we stand on the shoulders of the people who took it there: SWC first, then Turbopack, Biome and Lightning CSS, and now Vite itself bundles with Rolldown and parses, lints and formats with Oxc, all of it Rust. This site is linted and formatted by them. Ferramenta is our part of that move: the engines under the tools, in the language the tools themselves moved to.

The material, in other people's words

Need one of these in your stack?

The people who build the engines also integrate them, support them, and maintain them for the long run.

  • Integration into your toolchain
  • Support with a named contact
  • Long-term maintenance
Talk to Sebastian Consulting