reinhardt_core/lib.rs
1//! # Reinhardt Core
2//!
3//! Core components for the Reinhardt framework, providing fundamental types,
4//! exception handling, signals, macros, security, and validation utilities.
5//!
6//! ## Available Validators
7//!
8//! The validators crate provides comprehensive validation utilities:
9//! - **IPAddressValidator**: IPv4/IPv6 address validation
10//! - **PhoneNumberValidator**: International phone number validation (E.164)
11//! - **CreditCardValidator**: Credit card validation with Luhn algorithm
12//! - **IBANValidator**: International bank account number validation
13//! - **ColorValidator**: Hex, RGB, HSL color validation
14//! - **FileTypeValidator**: MIME type and extension validation
15//! - **CustomRegexValidator**: User-defined regex pattern validation
16//!
17//! ## Available Backend Implementations
18//!
19//! The backends crate provides multiple backend implementations:
20//! - **Cache Backends**: Redis (✅), DynamoDB (✅), Memcached (✅)
21//! - **Email Backends**: SMTP (✅), SendGrid (✅), AWS SES (✅), Mailgun (✅)
22//! - **Queue Backends**: Redis (✅), RabbitMQ (✅), AWS SQS (✅)
23//! - **Session Backends**: JWT (✅), Database (✅), Redis (✅), Cookie (✅), File (✅)
24//! - **Storage Backends**: S3 (✅), Azure Blob (✅), GCS (✅), FileSystem (✅), Memory (✅)
25//!
26//! For detailed implementation and usage information, see the individual
27//! crate documentation in `reinhardt-contrib`, `reinhardt-tasks`, `reinhardt-core/backends`.
28
29#[cfg(not(target_arch = "wasm32"))]
30pub mod endpoint;
31pub mod exception;
32pub mod messages;
33pub mod negotiation;
34pub mod pagination;
35pub mod parsers;
36pub mod rate_limit;
37pub mod reactive;
38pub mod security;
39pub mod serializers;
40pub mod signals;
41pub mod types;
42pub mod validators;
43
44// Re-export Page types when page feature is enabled
45// This provides Page, PageElement, IntoPage, Head, EventType, etc.
46#[cfg(feature = "page")]
47pub use crate::types::page;
48
49#[cfg(feature = "macros")]
50pub use reinhardt_macros as macros;
51
52// Re-export rate limiting types
53pub use crate::rate_limit::RateLimitStrategy;
54
55// Re-export common external dependencies
56pub use async_trait::async_trait;
57
58// Re-export tokio only on non-WASM targets
59#[cfg(not(target_arch = "wasm32"))]
60pub use tokio;
61
62// Re-export serde with json as a submodule
63#[cfg(feature = "serde")]
64pub mod serde {
65 pub use ::serde::{Deserialize, Deserializer, Serialize, Serializer, de, ser};
66 pub use ::serde_json as json;
67}