Skip to main content

bulwark_security/
lib.rs

1//! Bulwark
2//!
3//! A security-first backend framework for Rust.
4//!
5//! Philosophy:
6//! - Secure by default
7//! - Explicit request decisions
8//! - Minimal magic
9//! - Defense comes first
10
11pub mod logging;
12pub mod request;
13pub mod security;
14pub mod server;
15
16/// Core decision made by Bulwark security pipeline.
17#[derive(Debug, Clone, Copy, PartialEq, Eq)]
18pub enum Decision {
19    Allow,
20    Block,
21    Log,
22}
23
24/// Result type used across Bulwark.
25pub type BulwarkResult<T> = Result<T, BulwarkError>;
26
27/// Global error type for Bulwark.
28#[derive(Debug)]
29pub enum BulwarkError {
30    Blocked { reason: &'static str },
31    InternalError { message: &'static str },
32}
33
34impl BulwarkError {
35    pub fn blocked(reason: &'static str) -> Self {
36        BulwarkError::Blocked { reason }
37    }
38
39    pub fn internal(message: &'static str) -> Self {
40        BulwarkError::InternalError { message }
41    }
42}