Rust first
- Rust is the lead. Where a Rust implementation of a component exists, it is the one to use, and these docs present it first.
- The React build keeps working. The React and TypeScript (
.tsx) components stay in the registry and stay installable. They are deprioritised: not the lead, and not where new work goes. These docs call them the React build. - UI and server. Roots covers the handlers that serve a component as well as the component, which is the charter’s full-stack shape for Phase 1.
How Roots relates to the language
Roots components are written in Rust today, not in Mzizi. The language cannot produce them yet: nothing lowers to Rust, and Phase 1 waits on the benchmark (Status). The relationship runs the other way for now. The registry’s components, React and Rust together, are the benchmark corpus: the fixed ground truth the language is measured against. The nine primitives are hand ports of registry components, and the benchmark scores a candidate against a component’s Rust reference. A component with a Rust sibling is a component the benchmark can score.What exists today
The Rust half of the registry lives inmzizi-rs/ in
mzizi-dev/mzizi-registry, a Cargo workspace:
They are compiled and contract-tested in the registry’s CI. Every primitive with a Rust
sibling has a test asserting that its
.tsx and .rs agree on variants, data-slot names
and classes.
None of these crates is published to crates.io yet, including mzizi-ui (checked
29 September 2026). You can read a component’s Rust source over the API:
mzizi-ui crate, not copy .rs files into itself, and that has to wait for the crate to be
published.
Where to go next
The registry
How the registry works, and how to install from it today.
The helix
The DNA-helix architecture every component, Rust or React, is placed on.
Browse the components
Every component, grouped by node, at
mzizi.dev/components.The MCP server
Read any component, its tokens and its doctrine from an agent.