Architecture
Blink is a small Rust workspace. The CLI is a thin surface over a shared core, and each remaining crate owns exactly one job — with no circular dependencies between them.
Blink CLI
|
Blink Core
/ / | \ \
blink-config blink-index blink-analyzer blink-report blink-plugin
\ \ | / /
Projectblink-cli
command surface
Every command you run — inspect, index, optimize, report — enters here and delegates straight into the core. The CLI owns argument parsing, help, and presentation, and nothing else.
blink-core
shared engine
The vocabulary the whole tool is built on: the project model and the plumbing every other crate draws from. Core depends on nothing else in the workspace, so it stays reusable.
blink-config
.bnk configuration
Loads and validates the .bnk project file. It resolves defaults, reports clear errors on malformed input, and hands a typed configuration to the rest of the tool.
blink-index
fast local index
Builds and incrementally maintains the local project index that makes searching and repeated analysis fast. Only changed files are re-read.
blink-analyzer
understanding
Reads a project into structured knowledge — languages, frameworks, dependencies, and the concrete improvements Blink can recommend.
blink-report
reporting
Turns the analyzer's findings into human-readable reports and structured output for the terminal, files, and other tooling.
blink-plugin
extensibility
The plugin surface. Custom analyzers, detectors, exporters, and integrations register here and become first-class parts of every command.