CodeVetter · Repo Unpack · System map
actix/actix-web
The root workspace contains ten cooperating library crates, with local patches connecting their development builds. Application construction and routing live in actix-web, while actix-http supplies protocol services and actix-router supplies matching. Examples provide executable entrypoints; runtime and listener management cross into external Actix and Tokio crates. Storage in the inspected implementation consists of application state and filesystem services, with database integrations left to applications.
- Cargo.toml declares ten workspace members, resolver 2, Rust edition 2021, and MSRV 1.88; its crates.io patches redirect the companion packages to local paths.
- actix-web depends on actix-http, actix-router, optional actix-web-codegen, and external actix-server/service/runtime crates; these dependencies establish separate application, protocol, routing, and runtime boundaries.
- Each HTTP worker uses a single-threaded Tokio runtime; HttpServer::workers documents at least one application-factory instantiation per worker, so application construction is repeated.
- The basic executable initializes logging, builds an App with three middleware layers and several resources, binds 127.0.0.1:8080, selects one worker, and awaits HttpServer::run.
- Manifest package names are actix-http 3.18.12, actix-files 0.7.0, and actix-http-test 3.3.0; actix-http's package name is not the dependency name reported by the supplied inventory.
- Data<T> wraps Arc-backed application state, while AppInitService owns an Rc<Extensions> container; multipart TempFile writes to NamedTempFile in a configured directory or the system temporary location.
- The repository's build/check interface is justfile: check-min and check-default use cargo-hack, clippy checks workspace targets, test combines Cargo and nextest, and test-docs builds documentation before running doctests.
- The inspected deployment example embeds libraries in a Rust server executable; run delegates to ServerBuilder. Release builds enable LTO, optimization level 3, and one codegen unit, while dependency-graph documentation provides GraphViz rendering instructions.