CodeVetter
← All unpacks
CodeVetter · Repo Unpack evidence

actix/actix-web

Scanned commit 30c831fce5 dated 2026-10-02 — last upstream commit. Generated by codevetter 1.15.0 on 2026-10-02.

github.com/actix/actix-web ↗ · 442 files · 3.1 MB

Actix Web Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust Features - Supports HTTP/1.x and HTTP/2 - Streaming and pipelining - Powerful request routing with optional macros - Full Tokio compatibility - Keep-alive and slow requests

Deep analysis by cli:codex via the codex CLI on 2026-10-02 (471s) — every claim below links to its cited source files. Source inspection; upstream code and tests were not executed.

Overview

Actix Web is a Rust framework and companion library workspace for building asynchronous HTTP services, with typed request extraction, composable middleware, ordered routing, static files, multipart uploads, and an HTTP/WebSocket client. Its implementation separates application services from HTTP protocol machinery and runs server workers on single-threaded Tokio runtimes. This brief investigates commit 30c831fce5328ccf916bea77e59ce6419b457e39 through public source, examples, tests, manifests, and all seven listed workflows; it describes source behavior without claiming executed validation or measured performance.

System map

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.

Feature catalog

The user-facing surface is primarily Rust APIs for service authors. Routing supports manual resources, nested scopes, guards, and procedural attributes. Typed extraction, middleware, file responses, uploads, client requests, and WebSockets cover distinct HTTP application needs. Optional features control protocol, TLS, compression, cookies, and experimental route diagnostics.

Data flow

Listener factories assemble a protocol service around application factories before requests enter the application pipeline. Protocol requests carry headers, payloads, connection data, and request extensions into ServiceRequest. Routing mutates match information before extractors produce typed handler arguments, and responders turn results into HTTP output. Filesystem services and outbound client requests introduce separate input/output boundaries with their own transformation and limit rules.

Behavior traces

The investigation followed startup, routed handler execution, JSON extraction, multipart disk writes, static delivery, and outbound redirects through their implementation files. Startup consumes application registrations and resolves service/data factories before handling traffic. Request paths branch on guards, extractor failures, and resource defaults. Uploads end in temporary storage unless application code supplies a separate persistence step.

Testing signals

Tests and CI were inspected, not executed; no passing result or coverage percentage was established. The examined tests include synchronous Rust unit tests, Actix asynchronous tests, real HTTP integration servers, and trybuild compiler fixtures. They cover protocol framing, shutdown ownership, static traversal, uploads, and macro diagnostics. This is bounded evidence: service-only helpers omit wire encoding/decoding, and configured exclusions or gates limit what a given test run exercises.

Risk map

These risks are source observations and explicitly labeled hypotheses, not confirmed vulnerabilities. The most sensitive inspected boundaries are proxy headers, HTTP framing, filesystem paths, upload accounting, error output, and redirected client requests. Compatibility features and older TLS support also affect maintenance and validation scope. Passing CI cannot be inferred from workflow definitions, particularly where checks are disabled or advisory.

Extension points

Extension is built around Rust traits and service factories rather than runtime plugin loading. Applications register resources, scopes, and custom services through builders or generated HttpServiceFactory implementations. Middleware, extractors, responders, and multipart readers expose separate contracts for customization. Client connectors and filesystem filters provide narrower integration hooks.

Contributor handoff

Start at the affected crate's manifest and follow the service or protocol boundary implicated by the task. Preserve worker-local ownership, shared-data registration, middleware order, and feature-disabled compilation when making future changes. Tests and CI were inspected, not executed, and this brief is bounded rather than exhaustive. The commands below describe available future validation; none were run during this read-only investigation.

Languages

LanguageFilesShare of source
Rust31995%
Markdown35docs/config
TOML165%
YAML15docs/config
JavaScript10%

Start reading here

Probable source entrypoint: Cargo.toml — inferred from the directory tree and manifest, not the upstream docs.

Source roots

actix-web/ (126 files)

Source layout — actix-web/

PathFiles
actix-web/benches/3
actix-web/examples/10
actix-web/src/27
actix-web/tests/13
actix-web/CHANGES.md1
actix-web/Cargo.toml1
actix-web/LICENSE-APACHE1
actix-web/LICENSE-MIT1
actix-web/MIGRATION-0.x.md1
actix-web/MIGRATION-1.0.md1
actix-web/MIGRATION-2.0.md1
actix-web/MIGRATION-3.0.md1
actix-web/MIGRATION-4.0.md1
actix-web/README.md1

Repository structure

Top-level pathFiles
actix-web/126
actix-http/100
actix-web-codegen/39
awc/38
actix-multipart/31
actix-files/27
actix-router/17
.github/13

Docs found: README.mddocs/graphs/README.md

Package

Cargo.toml — , 0 declared dependencies.

CI & config entrypoints

Structural health signals

Average score 5.8/10 across 96 analyzed source files; 65 hotspots surfaced.

These are deterministic review leads — size, churn, and structural signals — not proof of a bug in this project.

Recent history