Rust crates
Rust 1.95.0 · edition 2024
Terminal window
Larrygram is one Cargo workspace. The crates are internal for now: none is published to crates.io, so their API documentation is not on docs.rs. Build it locally with:
cargo doc --workspace --no-deps --openEvery crate forbids unsafe code and warns on missing documentation.
Libraries
Section titled “Libraries”| Crate | Owns | Status |
|---|---|---|
larrygram-geom |
Geometry: paths, arcs, NURBS, splines, transforms, hit testing | Available |
larrygram-model |
Document model: documents, pages, shapes, masters, styles, ShapeSheet cells | Available |
larrygram-vsdx |
OPC package and XML read/write for .vsdx, .vssx and .vstx |
Available |
larrygram-shapesheet |
ShapeSheet formula parser, evaluator and recalculation | In progress |
larrygram-text |
Text layout for shape text blocks | Available |
larrygram-render |
Scene graph, PNG and SVG rendering | Available |
larrygram-commands |
Command registry, undo and redo, selection, settings | Available |
larrygram-ui-spec |
Loader for layout, menu and shortcut data | Available |
larrygram-ui |
The egui user interface: command bar, canvas, panes | Available |
larrygram-vsd-binary |
Read-only import of binary .vsd, .vss and .vst (derived from libvisio, MPL-2.0) |
Planned |
larrygram-control |
JSON control channel and MCP server | Planned |
Applications
Section titled “Applications”| Crate | What it is |
|---|---|
larrygram |
The desktop app (eframe and egui, OpenGL through glow) |
larrygram-cli |
The command-line tool |
larrygram-web |
The web app (WebAssembly, built with trunk) |
xtask |
Project tasks: gate, codegen, extract, parity, corpus, coverage |
Layers
Section titled “Layers”The crates form layers, and a lower layer never depends on a higher one: geometry and the model at the bottom, file formats and the formula engine above them, then rendering, the command registry, and the user interface at the top. The xtask gate step layers checks this on every merge.