---
title: "Rust"
url: https://www.grahambrooks.com/tags/rust/
---

# Rust

- [Open source update: six new tools and what changed, September to October 2026](https://www.grahambrooks.com/post/open-source-update-october-2026/index.md) (2026-10-25): A roundup of my public GitHub projects from 1 September to 25 October 2026: 92 releases across 27 repositories, six tools released for the first time or never introduced here, the releases that changed behaviour, and the work sitting on main that hasn't shipped yet.
- [Reading a change as two aligned files, in a terminal (increment)](https://www.grahambrooks.com/post/increment-aligned-diffs-in-the-terminal/index.md) (2026-10-25): increment (the command is inc) is a terminal diff viewer built around the aligned side-by-side view: corresponding lines level with each other, word-level highlighting, folding you can undo, moved blocks shown as moves, and a commit-by-commit branch review. An introduction, and an honest comparison with delta and difftastic.
- [Mermaid to SVG without a browser, and with the labels still there (mmd)](https://www.grahambrooks.com/post/mmd-mermaid-to-svg-without-a-browser/index.md) (2026-10-25): mmd renders Mermaid flowcharts, gitGraph and C4 context diagrams to SVG in pure Rust, with real <text> labels so the output survives conversion to PDF. An introduction to what it does, what it deliberately doesn't, and why it's 3,250 lines rather than 40,000.
- [teleplot 2026.10.0: Kibana dashboards without Kibana, in one binary](https://www.grahambrooks.com/post/teleplot-first-release/index.md) (2026-10-25): teleplot v2026.10.0 is the first release of a single-binary, view-only dashboard server that renders Kibana exports and its own YAML dashboards straight from Elasticsearch 8.x and 9.x.
- [infographic v2026.10.1: the first release, with animated SVG explainers from a one-line request](https://www.grahambrooks.com/post/infographic-first-release/index.md) (2026-10-25): infographic v2026.10.1 is the first release of a Claude Code skill and Rust CLI that turn a one-line request into an animated, checked SVG explaining a technical pattern, with prebuilt binaries for macOS and Linux.
- [symgraph v2026.10.18: a vendored minified file stops topping your dependency graph, and an export for analytics](https://www.grahambrooks.com/post/symgraph-2026-10-18-export/index.md) (2026-10-19): symgraph v2026.10.18 keeps generated and minified code out of the dependency graph and adds `symgraph export`, which writes coupling and per-commit change-impact records as JSON Lines.
- [puml 2026.10.2: diagrams as diagram-scene scenes, and lost messages parse](https://www.grahambrooks.com/post/puml-2026-10-2-scenes/index.md) (2026-10-14): puml 2026.10.2 can hand sequence, class, activity and state diagrams to a host application as diagram-scene scenes, and parses PlantUML's lost-message arrow. The rest is dependency updates.
- [forge 2026.10.2: forge as a library, with views as diagram-scene scenes](https://www.grahambrooks.com/post/forge-2026-10-2-library/index.md) (2026-10-14): forge v2026.10.2 can be used as a Rust library that parses a .forge model and lays its views out as diagram-scene scenes, so a host application can draw them natively. The rest of the release is dependency updates.
- [diagram-scene v2026.10.0: a laid-out diagram as plain data](https://www.grahambrooks.com/post/diagram-scene-first-release/index.md) (2026-10-14): diagram-scene v2026.10.0 is the first release of a Rust library that describes a laid-out software diagram as data, so layout engines and painters stop being coupled to each other.
- [When an agent can already write the file, what is an MCP server for?](https://www.grahambrooks.com/post/what-is-an-mcp-server-for/index.md) (2026-10-04): If an agent can already write your tool's file format, an MCP server has to give it something the file can't: live discovery, validation against the real system, a preview of the result, and a save with rules. Teleplot's endpoint was built only because it passed that gate, and it passed more narrowly than I first thought. Most MCP servers should fail it and be a file format plus a linter.
- [The release pipeline four tools kept reinventing (release-kit)](https://www.grahambrooks.com/post/release-pipeline-as-a-tool/index.md) (2026-09-27): Once you have more than a few single-user tools, the release process is a tool too. Its one user is you, and copying it into every repo is the per-repo config layer all over again. release-kit v2 moved four Rust tools onto one tag-driven pipeline, and a fix to it became a copy rather than four separate repairs.
- [Stop declaring what you can already read (myspec)](https://www.grahambrooks.com/post/stop-declaring-what-you-can-read/index.md) (2026-09-27): Once an agent's toolchain has enough moving parts (plugins, skills, MCP servers, modes, hooks), convention and hope stop being enough, and it needs the discipline of a real system: versioned migrations, deterministic gates, and one source of truth per fact. In myspec, the clearest example was a mode flag the developer had to set by hand. It drifted, and the proposed fix is to read the mode from where it already lives.
- [forge 2026.9.8: a JetBrains preview and models on stdin](https://www.grahambrooks.com/post/forge-2026-9-8-jetbrains-preview/index.md) (2026-09-26): forge 2026.9.8 adds a live diagram preview plugin for JetBrains IDEs and lets build, check and export read a model from stdin, so unsaved editor buffers can be rendered.
- [Letting an agent read your mail: split the reader from the network](https://www.grahambrooks.com/post/letting-an-agent-read-your-mail/index.md) (2026-09-26): An agent that reads your inbox is reading text written by strangers, so whether the model behaves is the wrong question. The useful question is what the process holding that text can do. In the twin's mail reader, the answer is enforced by the OS rather than asked for in a prompt: the one process that can see Mail can't touch the network, and the model that ranks the mail has no tools. Some things still get through, and they're worth naming.
- [Making a Code Graph Admit What It Doesn't Know (symgraph)](https://www.grahambrooks.com/post/symgraph-admitting-what-it-does-not-know/index.md) (2026-09-22): A code-intelligence index answered every question it was asked. Sixteen percent of its call edges pointed at things that cannot be called, its truncated lists said nothing about being truncated, and one of its tools had never worked at all. The month's work was almost entirely about replacing confident answers with calibrated ones.
- [Giving the Consumer a Representative in the Working Tree (brake)](https://www.grahambrooks.com/post/brake-exit-criteria-for-the-consumer/index.md) (2026-08-24): Every signal an agent uses to decide it is finished — compiler, tests, linter — is a question about the repository it is standing in. The consumers of the API it just changed are somewhere else entirely. brake makes 'who does this break?' answerable from files already in the tree, with no network, no broker, and no running service.
- [Architecture the Agentic Loop Can Actually Check (tropism)](https://www.grahambrooks.com/post/tropism-architecture-in-the-agentic-loop/index.md) (2026-08-08): Coding agents get fast feedback from compilers, tests, and linters — all of which are local. None of them knows the shape of the system. Tropism is an attempt to close that gap: one architecture ruleset, ten languages, no build, no network, sound enough to block a commit.
- [Porting Midje's Arrow to Rust (facts)](https://www.grahambrooks.com/post/facts-rust-testing-library/index.md) (2026-05-25): Why Clojure's `actual => expected` reads better than the testing toolbox Rust ships with, and what survives the port.
- [Running Local MCP Servers Without a Node or Python Runtime (bx)](https://www.grahambrooks.com/post/bx-lighter-mcp-servers/index.md) (2026-05-23): MCP server configs across the ecosystem default to npx . That quietly forces a Node runtime onto every machine that wants to run a native binary tool. bx is the missing primitive for the other case. I spent the weekend…
- [Team Code Review Without the Server: a CLI (casual-review)](https://www.grahambrooks.com/post/casual-review-cli-team-code-review/index.md) (2026-04-30): Most code review tools want to be a service. The interesting question is what falls out when you refuse to run one — and use git itself as the sync layer instead. I’ve spent the last few weeks building casual-review…
- [A Rust-Native Architecture Toolchain: forge, puml, and adoc](https://www.grahambrooks.com/post/rust-native-architecture-toolchain/index.md) (2026-04-26): A Rust-Native Architecture Toolchain: forge, puml, and adoc Replacing the JVM and Ruby pieces of the architecture documentation stack with single static binaries Most of the tools I reach for when documenting architecture were built in another era. PlantUML wants…
- [Exploring Your Backstage Catalog Without Backstage](https://www.grahambrooks.com/post/exploring-your-backstage-catalog-without-backstage/index.md) (2026-02-21): Exploring Your Backstage Catalog Without Backstage How bsv gives you instant visibility into your software catalog from the terminal Backstage has become the de facto standard for software catalogs. Thousands of organizations use it to track their services, APIs, teams,…
- [Seeing Your Codebase as a City](https://www.grahambrooks.com/post/seeing-your-codebase-as-a-city/index.md) (2026-02-21): Seeing Your Codebase as a City Why we need better ways to understand code at scale – and how 3D visualization can help Software teams accumulate code the way cities accumulate buildings. One project at a time, one service at…
- [Visualizing Project Structure with rv](https://www.grahambrooks.com/post/visualizing-project-structure-with-rv/index.md) (2026-02-21): Visualizing Project Structure with rv A fast, interactive way to see what’s actually in your project Every developer has had the experience of opening an unfamiliar codebase and trying to figure out what’s where. You run tree , get a…
- [Building a Code Knowledge Graph for AI Agents](https://www.grahambrooks.com/post/building-a-code-knowledge-graph-for-ai-agents/index.md) (2026-02-15): Building a Code Knowledge Graph for AI Agents How I rebuilt codegraph in Rust to give AI coding assistants a semantic map of your codebase There’s a fundamental tension at the heart of agentic coding today. AI models are remarkably…
