Skip to main content

better_auth_core/
lib.rs

1//! # Better Auth Core
2//!
3//! Core abstractions for the Better Auth authentication framework.
4//! Contains traits, types, configuration, and error handling.
5
6pub mod adapters;
7pub mod config;
8pub mod email;
9pub mod entity;
10pub mod error;
11pub mod hooks;
12pub mod middleware;
13pub mod openapi;
14pub mod plugin;
15pub mod session;
16pub mod types;
17pub mod types_impls;
18pub mod types_org;
19
20// Re-export derive macros when the `derive` feature is enabled
21#[cfg(feature = "derive")]
22pub use better_auth_derive::*;
23
24// Re-export commonly used items
25pub use adapters::{
26    AccountOps, ApiKeyOps, CacheAdapter, DatabaseAdapter, InvitationOps, MemberOps, MemoryAccount,
27    MemoryApiKey, MemoryCacheAdapter, MemoryDatabaseAdapter, MemoryInvitation, MemoryMember,
28    MemoryOrganization, MemoryPasskey, MemorySession, MemoryTwoFactor, MemoryUser,
29    MemoryVerification, OrganizationOps, PasskeyOps, SessionOps, TwoFactorOps, UserOps,
30    VerificationOps,
31};
32#[cfg(feature = "sqlx-postgres")]
33pub use adapters::{SqlxAdapter, SqlxEntity};
34pub use config::{Argon2Config, AuthConfig, JwtConfig, PasswordConfig, SameSite, SessionConfig};
35pub use email::{ConsoleEmailProvider, EmailProvider};
36pub use entity::{
37    AuthAccount, AuthAccountMeta, AuthApiKey, AuthApiKeyMeta, AuthInvitation, AuthInvitationMeta,
38    AuthMember, AuthMemberMeta, AuthOrganization, AuthOrganizationMeta, AuthPasskey,
39    AuthPasskeyMeta, AuthSession, AuthSessionMeta, AuthTwoFactor, AuthTwoFactorMeta, AuthUser,
40    AuthUserMeta, AuthVerification, AuthVerificationMeta, MemberUserView,
41};
42pub use error::{
43    AuthError, AuthResult, DatabaseError, validate_request_body, validation_error_response,
44};
45pub use hooks::{DatabaseHooks, HookedDatabaseAdapter};
46pub use middleware::{
47    BodyLimitConfig, BodyLimitMiddleware, CorsConfig, CorsMiddleware, CsrfConfig, CsrfMiddleware,
48    EndpointRateLimit, Middleware, RateLimitConfig, RateLimitMiddleware,
49};
50pub use openapi::{OpenApiBuilder, OpenApiInfo, OpenApiOperation, OpenApiResponse, OpenApiSpec};
51pub use plugin::{AuthContext, AuthPlugin, AuthRoute};
52pub use session::SessionManager;
53pub use types::{
54    Account, ApiKey, AuthRequest, AuthResponse, CodeMessageResponse, CreateAccount, CreateApiKey,
55    CreateInvitation, CreateMember, CreateOrganization, CreatePasskey, CreateSession,
56    CreateTwoFactor, CreateUser, CreateVerification, DeleteUserResponse, ErrorMessageResponse,
57    HealthCheckResponse, HttpMethod, Invitation, InvitationStatus, ListUsersParams, OkResponse,
58    Passkey, RateLimitErrorResponse, Session, StatusMessageResponse, StatusResponse, TwoFactor,
59    UpdateAccount, UpdateApiKey, UpdateOrganization, UpdatePasskey, UpdateUser, UpdateUserRequest,
60    UpdateUserResponse, User, ValidationErrorResponse, Verification,
61};