Skip to main content

fastapi_router/
lib.rs

1//! Trie-based HTTP router.
2//!
3//! This crate provides a high-performance radix trie router optimized
4//! for the fastapi_rust framework.
5//!
6//! # Features
7//!
8//! - Radix trie for fast lookups
9//! - Path parameter extraction (`/items/{id}`)
10//! - Type-safe path converters
11//! - Static route optimization
12
13#![warn(unsafe_code)]
14// Pedantic clippy lints allowed (style suggestions, not correctness issues)
15#![allow(clippy::needless_lifetimes)]
16#![allow(clippy::elidable_lifetime_names)]
17#![allow(clippy::trivially_copy_pass_by_ref)]
18#![allow(clippy::cast_ptr_alignment)]
19#![allow(clippy::ptr_as_ptr)]
20#![allow(clippy::borrow_as_ptr)]
21#![allow(clippy::match_same_arms)]
22#![allow(clippy::manual_let_else)]
23#![allow(clippy::uninlined_format_args)]
24#![allow(clippy::single_match_else)]
25#![allow(clippy::needless_pass_by_value)]
26#![allow(clippy::must_use_candidate)]
27#![allow(clippy::missing_fields_in_debug)]
28#![allow(clippy::needless_borrow)]
29#![allow(clippy::ref_as_ptr)]
30#![allow(clippy::used_underscore_binding)]
31#![allow(clippy::too_many_lines)]
32#![allow(clippy::match_wildcard_for_single_variants)]
33#![allow(clippy::needless_borrows_for_generic_args)]
34
35mod r#match;
36mod registry;
37mod trie;
38
39pub use r#match::{AllowedMethods, RouteLookup, RouteMatch};
40pub use registry::{RouteRegistration, registered_routes};
41pub use trie::{
42    ConversionError, Converter, InvalidRouteError, ParamInfo, ParamValue, Route, RouteAddError,
43    RouteConflictError, Router,
44};