1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//! Hardened static-serving primitives for eggserve.
//!
//! # Public API status (alpha)
//!
//! The public surface is intentionally conservative during the alpha period.
//! Modules and types are divided into three buckets:
//!
//! - **Semver-considered (pre-1.0)**: [`config`], [`limits`], [`policy`], and
//! [`primitives`]. These are the intended public facades, but a minor
//! release may still make breaking changes before 1.0.
//! - **Experimental**: [`server`]. The runtime and service boundary is
//! exposed for Rust embedders and may change independently before 1.0.
//! - **Internal**: [`fs`], [`path`], [`response`], MIME detection, and the
//! error taxonomy. These are not part of the public API and are not
//! re-exported. External callers should not depend on them.
//!
//! Start with [`primitives`] when using the library without starting a
//! server. Use [`server`] for the experimental transport-owning runtime; the
//! repository's `static_server` and `custom_service` examples show the two
//! supported embedding paths.
//!
//! # Primitives facade
//!
//! The [`primitives`] module is the **intended public boundary** for Rust
//! consumers that want to embed eggserve's hardened path validation and policy
//! enforcement without pulling in the full HTTP service layer. It re-exports
//! the core types with invariant-focused documentation.
//!
//! Before 1.0, every public type or function in this crate may change without
//! a major version bump. See [docs/release-process.md](docs/release-process.md)
//! for the manual release procedure.
pub
pub
pub
pub