RustAPI Documentation

August 11, 2026 · View on GitHub

Central index for user guides, architecture notes, and open-source contribution paths.

Current release: rustapi-rs 0.2.0 · Changelog · All releases


Start here

DocumentDescription
Golden PathHandler → OpenAPI → probes → MCP/deploy (canonical story)
Getting StartedFirst API tutorial + feature table
CookbookRecipes, crate deep dives, learning paths
FeaturesFeature reference
Community & ContributingHow to get help, contribute, and report issues

Architecture & design

DocumentDescription
PhilosophyDesign principles
ArchitectureInternal structure
Performance BenchmarksMethodology and published claims
Public API ContractStability and semver expectations

Production

DocumentDescription
Golden PathSmallest recommended service shape
Production BaselineRecommended defaults (production_defaults, probes, middleware)
Production ChecklistPre-deploy and rollout checklist
Cookbook: DeploymentDocker, Fly.io, Railway, Shuttle, K8s
Cookbook: RustAPI CloudManaged hosting via CLI
Cookbook: ObservabilityMetrics, tracing, health
Cookbook: Graceful ShutdownClean shutdown
Cookbook: ReplayRequest capture and replay

CLI & tooling

DocumentDescription
cargo-rustapi (Cookbook)Full command reference
RustAPI Cloud backendSelf-hosted / managed cloud source

Open source

DocumentDescription
ContributingDev setup, tests, PR process
Code of ConductCommunity standards
SecurityVulnerability reporting
Community guideChannels, doc locations, release cadence

Examples

Quick start

[dependencies]
rustapi-rs = "0.2.0"

Alias for shorter macros (recommended):

[dependencies]
api = { package = "rustapi-rs", version = "0.2.0" }
use api::prelude::*;

#[derive(Serialize, Schema)]
struct Message { text: String }

#[api::get("/hello/{name}")]
async fn hello(Path(name): Path<String>) -> Json<Message> {
    Json(Message { text: format!("Hello, {name}!") })
}

#[api::main]
async fn main() -> std::result::Result<(), Box<dyn std::error::Error + Send + Sync>> {
    RustApi::auto().run("127.0.0.1:8080").await
}

Open http://127.0.0.1:8080/docs for auto-generated OpenAPI / Swagger UI.

Deploy to RustAPI Cloud

cargo install cargo-rustapi
cargo rustapi login
cargo rustapi deploy cloud

See RustAPI Cloud recipe for auth, status polling, and self-hosted backends.

License

MIT OR Apache-2.0, at your option.