Skip to main content

crw_server/
lib.rs

1//! Axum-based HTTP API server for the CRW web scraper.
2//!
3//! Implements the Firecrawl-compatible REST API and built-in MCP transport:
4//!
5//! - [`app`] — Application builder and router setup
6//! - [`routes`] — API endpoint handlers (`/v1/scrape`, `/v1/crawl`, `/v1/map`, `/mcp`)
7//! - [`middleware`] — Auth middleware with constant-time Bearer token comparison
8//! - [`error`] — HTTP error responses
9//! - [`state`] — Shared application state (renderer, crawler, config)
10//!
11//! # Example
12//!
13//! ```rust,ignore
14//! use crw_server::app::create_app;
15//! use crw_server::state::AppState;
16//!
17//! let state = AppState::new(config).await;
18//! let app = create_app(state);
19//! let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await?;
20//! axum::serve(listener, app).await?;
21//! ```
22
23pub mod app;
24pub mod error;
25pub mod middleware;
26pub mod routes;
27pub mod setup;
28pub mod state;