Components¶
ˢ = standalone module of the phpboyscout Rust toolkit; the linked page points to its microsite.
What each crate is for, how it fits, and where its own documentation lives. For a conceptual overview that cuts across crates, see Concepts; for flags, keys and defaults, see Reference.
Only two crates still live in this repository¶
Most of the framework has been extracted into standalone toolkit
modules that version and release independently. This repository is now
the umbrella crate rust-tool-base (published as rtb) and the
scaffolder binary rtb-cli-bin; everything else is consumed as a pinned
dependency. The pages below marked ˢ therefore describe a crate that
ships elsewhere, and point at that module's microsite for its full API.
Two of those crates were renamed on the way out — rtb-ai became
rtb-chat, and rtb-vcs became rtb-forge. The old page URLs redirect.
Shipped¶
| Crate | Purpose | Key types |
|---|---|---|
rtb-error ˢ |
Canonical Error enum + miette hook pipeline. |
Error, Result, hook::install_* |
rtb-app ˢ |
App context, ToolMetadata, Features, Command trait, BUILTIN_COMMANDS. |
App, ToolMetadata, Command, BUILTIN_COMMANDS |
rtb-config ˢ |
Typed layered config over figment with atomic reload. | Config<C>, ConfigBuilder<C> |
rtb-assets ˢ |
Overlay asset FS over rust-embed + dirs + memory. | Assets, AssetSource, AssetsBuilder |
rtb-cli ˢ |
Application::builder, clap wiring, built-in commands. |
Application, HealthCheck, Initialiser |
rtb-credentials ˢ |
CredentialStore + Resolver for env/keychain/literal/fallback. | CredentialStore, Resolver, CredentialRef |
rtb-redact |
Free-form secret redaction for logs + telemetry — standalone module (docs). | string, SENSITIVE_HEADERS, is_sensitive_header |
rtb-telemetry ˢ |
Opt-in events with pluggable sinks + salted machine ID. | TelemetryContext, TelemetrySink, Event |
rtb-test-support ˢ |
Sealed-trait test helper for constructing App. |
TestAppBuilder, TestWitness |
rtb-forge ˢ |
Release-provider trait (GitHub/GitLab/Bitbucket/Gitea/Codeberg/Direct) + the Repo git-ops type — now rtb-forge (formerly rtb-vcs). |
ReleaseProvider, Repo, Release |
rtb-update ˢ |
Signature-verified self-update flow. | Updater, RunOptions, CheckOutcome |
rtb-chat ˢ |
Multi-provider AI chat — genai + Anthropic-direct — now rtb-chat (formerly rtb-ai). |
AiClient, ChatRequest, Config, Provider |
rtb-mcp ˢ |
MCP server — registered Commands as tools over rmcp. |
McpServer, Transport, McpError |
rtb-docs ˢ |
Docs browser TUI + embedded HTML server + full-text search. | DocsBrowser, DocsServer, Index |
rtb-tui ˢ |
Reusable TUI building blocks — Wizard, render helpers, TTY-aware Spinner. |
Wizard, WizardStep, Spinner, render_table, render_json |
rtb-cli-bin |
The rtb binary — scaffolder + AI codegen. rtb generate project / command / flag / setting / docs, rtb remove command / flag / setting, rtb regenerate manifest / project. Two presets (minimal, cli); marker-driven file edits; linkme-based command dispatch in generated tools; rtb-chat-driven --prompt / --script codegen with a cargo check-driven verifier loop. |
rtb binary (CLI grammar) |
Which crate a Cargo feature pulls in¶
The umbrella crate gates most of these behind a feature, and the mapping
from feature to crate — plus which are on by default — is in
Cargo features. Four crates
(rtb-app, rtb-assets, rtb-config, rtb-error) have no gate and are
always compiled in.
Reading guide¶
- New to RTB? Follow Build your first tool, then read App context for the entry-point pattern.
- Implementing a new command? rtb-app's
Commandsection and rtb-cli's "Replacing a built-in" walk through registration and dispatch. - Authoring a new crate for the framework? Read Engineering Standards first. Every existing component follows it.
- Security-sensitive code? Start with §1 of the Engineering Standards then the relevant component's "Security" section: rtb-credentials, rtb-assets, rtb-telemetry.