marxml
Fast markdown + XML query and mutation. Rust core, JS bindings.
marxml parses markdown documents that contain embedded XML tags and gives you a typed handle to query, mutate, and serialize them. Built in Rust, distributed both as a Rust crate and a Node package via prebuilt native bindings.
Status: early. Name reserved, real implementation in progress.
Why
Markdown is a great storage format for human-editable structured state — but parsing the embedded XML tags out reliably is fiddly, and doing it fast at scale (thousands of files, repeated parses) starts to bite. marxml exists to make that one job fast and ergonomic from either language.
Use cases:
- LLM tool output (XML-tagged blocks inside markdown responses)
- Static-site / docs generators that embed structured callouts
- Agent state machines stored as markdown
- Anywhere markdown-as-data meets a hot path
Install
Node / TypeScript
Ships prebuilt .node binaries for macOS (arm64, x64), Linux (x64-gnu, x64-musl, arm64-gnu), and Windows (x64-msvc).
Rust
Usage
API docs land with the first non-placeholder release.
Project layout
marxml/
├── crates/marxml/ # core Rust crate → crates.io
└── bindings/node/ # napi-rs wrapper → npm
License
Dual-licensed under either of MIT or Apache 2.0 at your option.