indexbus_platform/lib.rs
1//! `indexbus-platform` is an umbrella crate that re-exports the IndexBus platform suite.
2//!
3//! Use this crate when you want a single dependency for “platform” concerns:
4//! configuration, lifecycle/supervision, observability wiring, HTTP endpoints, auth, and DB.
5//!
6//! For fine-grained control (and leaner build graphs), depend on the leaf crates directly.
7//!
8//! # Feature requirements
9//!
10//! - This crate is **std-only** today.
11//! - Feature flags are largely passthroughs to leaf crates (e.g. obs backends, HTTP adapters,
12//! DB backends, auth integrations). See the crate's `Cargo.toml` / README for the full list.
13//!
14//! # Contracts
15//!
16//! - This crate does not define new platform behavior; it only re-exports leaf crates under
17//! short names (`core`, `config`, `obs`, `http`, ...).
18//! - Public API stability is the union of the referenced leaf crates. Upgrading this crate may
19//! upgrade leaf crates as well.
20//!
21//! # Error semantics
22//!
23//! - Prefer leaf-crate error types when integrating a specific subsystem.
24//! - The umbrella [`crate::errors::Error`] is intentionally minimal and exists mainly for apps
25//! that want a single error type at wiring boundaries.
26
27#![cfg_attr(not(feature = "std"), no_std)]
28#![deny(missing_docs)]
29
30#[cfg(all(not(feature = "std"), not(doc)))]
31compile_error!("indexbus-platform currently requires the `std` feature");
32
33#[cfg(feature = "std")]
34extern crate std;
35
36pub mod errors;
37pub mod prelude;
38
39mod internal;
40
41pub use indexbus_platform_auth as auth;
42pub use indexbus_platform_auth_jwt as auth_jwt;
43pub use indexbus_platform_auth_oidc as auth_oidc;
44
45pub use indexbus_platform_config as config;
46
47pub use indexbus_platform_core as core;
48
49pub use indexbus_platform_db as db;
50pub use indexbus_platform_db_sqlx as db_sqlx;
51
52pub use indexbus_platform_http as http;
53
54pub use indexbus_platform_obs as obs;
55
56pub use indexbus_platform_ops as ops;