slave-framework 0.8.0

Runtime for slave apps (a Laravel-inspired Rust framework for MCP-first apps): server lifecycle, config, logging, a Toasty database (Turso), and OpenID Connect sign-in
docs.rs failed to build slave-framework-0.8.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: slave-framework-0.7.0

slave-framework

The runtime behind applications created with slave, a Laravel-inspired Rust framework for MCP-first apps. You normally get it through slave new rather than adding it by hand.

Module Provides
server serve(router, host, port): an Axum server with graceful shutdown on Ctrl+C / SIGTERM
env .env loading and typed settings (var_or, parse_or)
logging tracing setup driven by RUST_LOG
database (feature database) The Toasty connection pool for the app's models, on Turso's embedded engine (DATABASE_URL, default turso:database/database.db). Migrations are Toasty's (toasty-cli)
oidc (feature oidc) Sign-in through an OpenID Connect provider: OidcVerifier checks ID tokens (signature via JWKS with key rotation, issuer, audience, expiry); OidcClient runs the Authorization Code flow with PKCE for server-rendered apps. No passwords are handled.
testing (feature testing) TestDatabase and TestIdentityProvider (a tiny, insecure OIDC provider) for integration tests and local development

database and oidc are on by default. Template apps in a slave workspace use default-features = false plus oidc (for sign-in); the backend's tests add testing.

#[tokio::main]
async fn main() -> slave_framework::Result<()> {
    slave_framework::env::load_dotenv()?;
    slave_framework::logging::init()?;
    let router = axum::Router::new();
    slave_framework::server::serve(router, "127.0.0.1", 3000).await
}

See the slave README for the full framework. License: MIT.