Packages at a glance
Breeze is one Go module. Each row below is a package you can import directly; importing only what you use is the point of the split.
| Package | Import path | Docs |
|---|---|---|
| HTTP core | github.com/nelthaarion/breeze/v2 | Router, Context |
| Request binding | breeze/binding | Request Binding & Validation |
| Middleware | breeze/middlewares | Middleware Reference |
| OAuth2 | breeze/middlewares/oauth2 | OAuth2 / Social Login |
| Diagnostics | breeze/diag | Diagnostics |
| Events | breeze/events | Events |
| Workflows | breeze/workflow | Workflows |
| Dashboard | breeze/dashboard | Dashboard |
| Observability | breeze/observability | Observability |
| Fleet tracing | breeze/fleet | Fleet Tracing |
| Video streaming | breeze/video | Video Streaming |
| JSON-RPC 2.0 | breeze/rpc | JSON-RPC 2.0 |
| OpenAPI / Scalar | breeze/scalar | OpenAPI / Scalar |
| Migrations | breeze/migrate | Migrations |
| HTTP client | breeze/client | HTTP Client |
| MCP (in-process) | breeze/mcp | MCP for AI Agents |
events, workflow and observability never import the root package โ they
work in a program that serves no HTTP at all. That is a deliberate dependency
direction: the root breeze package imports binding, rpc, scalar and internal/mcp; dashboard imports breeze, events, observability and video; fleet imports dashboard. Nothing at the bottom of that graph
knows the layers above it exist.
Where code lives
- Repo root โ
package breeze. The HTTP core and nothing else: router,Context, request/response, theBreezeserver, worker pool, WebSocket engine, template engine, i18n, the error type, Auto-MCP route registration. A file belongs at root only if it is part of serving an HTTP request or is required to construct the server. - Subdirectories of root โ public subsystems. One directory per subsystem, importable by user code, and each can be left out of an application entirely.
internal/โ machinery with no public API: the CLI's generator, the MCP server's implementation, shared flag parsing. Go enforces that nothing outside the module can import them.cmd/โ one directory per binary: shipped tools (breeze,breeze-mcp), runnable examples (<subsystem>-example), and other deployables (fleet-aggregator).
See Repository Conventions for the full set of rules โ naming, error handling, and where a new file should go.