Back to browse
GitHub Repository

High-performance Markdown and MDX processing for the JavaScript ecosystem

249 starsRust

Sätteri, high-performance Markdown pipeline for JavaScript

by Princesseuh·Apr 11, 2026·1 point·0 comments

AI Analysis

●●SolidBig BrainWizardry

Lazy deserialization means plugins only pay for nodes they actually visit.

Strengths
  • Arena allocators and raw transfer eliminate serialization costs for partial tree visits
  • Author works at Astro—built to solve real performance bottlenecks they encounter
  • Clear lineage from oxc and LightningCSS shows proven architectural patterns
Weaknesses
  • Markdown processing is solved—unified, remark, rehype already dominate the ecosystem
  • Performance gains only matter for large-scale builds, limiting practical audience
Target Audience

Static site generator users, Astro developers, Markdown tooling maintainers

Similar To

unified · oxc · Lightning CSS

Post Description

Hello!

I work at Astro (https://astro.build), where we do a lot of Markdown / MDX and performance in this area is often a bottleneck. Our users use a lot of plugins to process their Markdown, so just blindly moving everything to a native language would make things a bit rigid. Inspired by the oxc and LightningCSS projects, I decided to start to start working on an "ideal" Markdown pipeline: The expensive stuff in Rust, with flexible plugins in JS, but with little performance cost.

This project uses techniques like lazy deserialization, raw transfer, arenas etc to ensure top performance. A JS plugin that only visits, ex, headings shouldn't suffer from the serialization cost of the entire Markdown tree. On the Rust side this is backed by pulldown-cmark, a really fast parser for Markdown.

You can try it in the browser here: https://satteri.erika.florist, or follow the instructions in the README to try it out locally: https://github.com/bruits/satteri/blob/main/packages/satteri...

Hope you'll like it! Don't hesitate if you have any questions.

Similar Projects

Rusdantic

Pydantic ergonomics for Rust, but validator and garde already exist.

Ship ItCozy
mmgehlot
502mo ago