atmosphere/lib.rs
1//! # `🌍 Atmosphere`
2//!
3//! **A lightweight sql framework for sustainable database reliant systems**
4//!
5//! ## Overview
6//!
7//! Atmosphere is a lightweight SQL framework designed for sustainable, database-reliant systems.
8//! It leverages Rust's powerful type and macro systems to derive SQL schemas from your rust struct
9//! definitions into an advanced trait system.
10//!
11//! Atmosphere provides a suite of modules and types that abstract and facilitate various aspects
12//! of database operations, from query construction and execution to error handling and schema
13//! management.
14//!
15//! ## Key Features
16//!
17//! - SQL schema derivation from Rust structs.
18//! - Advanced trait system for query generation.
19//! - Automated database code testing with `atmosphere::testing`
20//! - ORM-like CRUD traits.
21//! - Code reusability across API layers using generics.
22//! - Compile-time introspection for type-safe schema generation.
23//!
24//! ## Usage
25//!
26//! To use this crate you must activate **one** of the following features (else the crate is empty):
27//!
28//! - `mysql`
29//! - `postgres`
30//! - `sqlite`
31
32#![cfg(any(feature = "postgres", feature = "mysql", feature = "sqlite"))]
33
34pub use atmosphere_core::*;
35pub use atmosphere_macros::*;
36
37#[cfg(feature = "postgis")]
38pub use atmosphere_extras::postgis;
39
40/// A prelude module for bringing commonly used types into scope
41pub mod prelude {
42 pub use async_trait::async_trait;
43 pub use atmosphere_core::*;
44 pub use atmosphere_macros::*;
45 pub use sqlx;
46}