Your database
Use SQLx or SeaORM with application-owned models and migrations. Keep authentication alongside your application data.
use better_auth::plugins::EmailPasswordPlugin;use better_auth::{AuthBuilder, AuthResult, AuthSchema, BetterAuth};
async fn with_passwords<S: AuthSchema>(builder: AuthBuilder<S>) -> AuthResult<BetterAuth<S>> { builder .plugin(EmailPasswordPlugin::new().enable_signup(true)) .build() .await}Start with the complete setup, then add the plugins your application needs.
Your database
Use SQLx or SeaORM with application-owned models and migrations. Keep authentication alongside your application data.
Rust throughout
Async APIs, typed schemas, and Axum session extractors. Compose authentication in the same language as your backend.
Room to grow
Email/password, OAuth, passkeys, two-factor authentication, organizations, and API keys, configured with Rust plugins.
A familiar API
Better Auth’s HTTP semantics, tested against its pinned runtime and official client. Native APIs where Rust needs them.