Rust with everything dynamically-sized removed. no heap. no Vec. no String. no unbounded recursion. every value has a known size at compile time. every loop has a known bound
the hidden truth: every u64 in Rs is secretly a word — type tag 0x01 — which is secretly a field element with a range constraint. the programmer writes conventional-looking systems code, but every operation is field-compatible. the Addressed type derive emits Hemera CIDs natively — commitment interface is baked into the type system
Rust → full language, heap, strings, anything
↓ restrict
Rs → strict subset, bounded, looks like systems code
↓ reveal
Trident → same restrictions, but the field is visible
Rs and Trident share the Goldilocks field processor substrate but present opposite mental models. a byte programmer thinks in registers and bit patterns. a field programmer thinks in algebraic constraints. same representation, opposite intent
.rs file → parser (Rust subset) → TIR → TASM / backend
.tri file → parser (Trident) → TIR → TASM / backend
↑
same IR, same value tower
see cyb/languages for the complete language set. see cyb/multiproof for the proving architecture
from subgraph rs
Rs: Safer, Faster, Field-First Rust
Rust treats bytes as machine integers. Rs treats bytes as elements of F_p. This single shift makes determinism, addressing, and bounded computation natural rather than enforced.
Rs is a minimal, strict superset of Rust for building systems where every byte is a field element. Rust manages memory safely. Rs manages state safely — where the word is not a machine integer but an element of a finite field, and where correctness means every node produces identical output for identical input.
Universe Language Type Algebra Purpose
─────────────────────────────────────────────────────────────
Binary Bt Bit F_2 tower Circuits
Byte Rs Word Bitwise on F_p Systems
Field Trident Field Arithmetic on F_p Proofs
The file extension is .rs. The edition identifier is rs. The compiler binary is rsc.
Seven Primitives
| # | Primitive | Compiler | Library | Guarantee |
|---|---|---|---|---|
| 1 | Typed Registers | ✓ | — | MMIO without unsafe |
| 2 | Bounded Async | ✓ | — | No unbounded waits |
| 3 | Deterministic Functions | ✓ | — | Same output everywhere |
| 4 | Addressed Types | — | ✓ | Identity from content |
| 5 | Step-Scoped State | — | ✓ | No state leaks |
| 6 | Cell Declarations | — | ✓ | Hot-swap + lifecycle |
| 7 | Edition Restrictions | ✓ | — | No heap, no leaks |
Compiler patch: ~2,000 lines. Library + macros: ~6,550 lines. Rust compatibility: 100%.
Documentation
- Why Rs Exists — the algebraic foundation
- Design Principles — superset, editions, zero keywords
- Standard Library — fixed_point, bounded, channel, particle, arena
- Compiler — architecture, line counts, build pipeline
- Error Catalog — all 33 diagnostics (RS001–RS507)
- Tutorial: cyb os Cell — all seven primitives in one file
Any Rust programmer can write Rs. Any LLM trained on Rust can generate Rs. Any no_std crate works with Rs. The ecosystem is not forked — it is extended.
Rust made systems programming safe. Rs makes it algebraic. When the word is a field element, determinism is not a discipline — it is the default.