Documentation
This book contains the project handbook, technical designs, architectural decisions, and links to the generated Rust API reference.
Reading the book
Install the pinned mdBook release once, then start the local server with live reload:
make install-doc-tools
make book-serve
Build the complete static documentation site with:
make site
The generated book starts at target/book/index.html. docs/SUMMARY.md controls the chapters and sidebar order.
API documentation
Application API documentation lives in //! and /// comments next to Rust code and is rendered by rustdoc. Build only that reference with:
make doc
The complete make site output places rustdoc under the book’s /api/ path. The documentation workflow publishes the combined site to GitHub Pages after changes reach main.
Implementation guide
The implementation guide explains how each module works and how to contribute to it, starting with a map of the code, the startup and request lifecycles, and the concurrency model.
Technical design documents
Technical design documents describe how a feature or subsystem should work before implementation. They capture requirements, data flow, interfaces, performance constraints, risks, and validation plans.
- Technical design index
- On-demand MP4 packaging core
- Asset mapper interface
- Production-grade HTTP API
- Technical design template
Architectural decision records
Architectural decision records (ADRs) capture durable choices, their context, and their consequences. ADRs are append-only: supersede an old decision with a new ADR instead of rewriting its history.
Guides
- Operating the origin covers probes, shutdown, CORS, metrics, and limits for production deployments.
- Performance budgets records how the budgets are measured and the current results.
- Releasing explains the commit convention, automatic version tags, and the manual release workflow.
- Mapper API reference specifies the service that resolves asset IDs to media locations.
- Protocol conformance lists what the automated conformance suite checks and what still needs vendor validators.
- Architecture records the current boundaries and should evolve with the crate.