http_relay/lib.rs
1//! A Rust implementation of _some_ of [Http relay spec](https://httprelay.io/).
2//!
3//! # Feature Flags
4//!
5//! - `server` (default): HTTP server with axum. Enables `HttpRelay` and `HttpRelayBuilder`.
6//! - `persist` (default): SQLite persistence. Without this, uses in-memory HashMap storage.
7//! - `link-compat`: Legacy `/link/{id}` endpoints (deprecated, requires `server`).
8//!
9//! # Library-only Usage
10//!
11//! Without the `server` feature, you can use the core types directly:
12//! ```ignore
13//! use http_relay::{EntryRepository, WaitingList, Message};
14//! ```
15
16#![deny(missing_docs)]
17#![deny(rustdoc::broken_intra_doc_links)]
18#![cfg_attr(any(), deny(clippy::unwrap_used))]
19
20mod http_relay;
21
22// Server exports (only with `server` feature)
23#[cfg(feature = "server")]
24pub use http_relay::{HttpRelay, HttpRelayBuilder};
25
26// Core types (always available)
27pub use http_relay::{
28 EntryRepository, GetOrSubscribeResult, Message, StoredEntry, SubscribeError, WaitingList,
29};