Skip to main content

alibi_api/
lib.rs

1//! # Alibi API
2//!
3//! Plugin implementations for the Alibi authentication framework.
4
5#![cfg_attr(
6    test,
7    allow(
8        unused_results,
9        unreachable_pub,
10        reason = "test code intentionally discards setup return values and exposes helpers broadly"
11    )
12)]
13
14#[cfg(all(feature = "native-tls", feature = "rustls"))]
15compile_error!(
16    "features `native-tls` and `rustls` are mutually exclusive. \
17     Enable exactly one of them: \
18     for `native-tls` (default), remove the `rustls` feature; \
19     for `rustls`, set `default-features = false, features = [\"rustls\"]`."
20);
21
22#[cfg(not(any(feature = "native-tls", feature = "rustls")))]
23compile_error!(
24    "one of the TLS backends must be enabled: \
25     enable either the `native-tls` (default) or `rustls` feature."
26);
27
28pub mod metadata;
29
30pub mod plugins;
31
32pub use plugins::account_management::AccountManagementPlugin;
33pub use plugins::api_key::{ApiKeyConfig, ApiKeyPlugin};
34pub use plugins::device_authorization::DeviceAuthorizationPlugin;
35pub use plugins::email_password::EmailPasswordPlugin;
36pub use plugins::email_verification::EmailVerificationPlugin;
37pub use plugins::oauth::OAuthPlugin;
38pub use plugins::oauth_proxy::{OAuthProxyConfig, OAuthProxyPlugin};
39pub use plugins::one_tap::{OneTapConfig, OneTapPlugin};
40pub use plugins::open_api::{OpenApiConfig, OpenApiPlugin};
41pub use plugins::passkey::{PasskeyConfig, PasskeyPlugin};
42pub use plugins::password_management::PasswordManagementPlugin;
43pub use plugins::session_management::SessionManagementPlugin;
44pub use plugins::two_factor::TwoFactorPlugin;