fastapi-core 0.4.4

Core types and traits for the FastAPI Rust framework
[package]
name = "fastapi-core"
description = "Core types and traits for the FastAPI Rust framework"
version.workspace = true
edition.workspace = true
license.workspace = true
rust-version.workspace = true

[dependencies]
asupersync = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
parking_lot = "0.12"
fastapi-types = { workspace = true }
fastapi-router = { workspace = true }
fastapi-openapi = { workspace = true }

# Cross-platform OS CSPRNG (used for password salts and CSRF tokens; replaces
# the previous /dev/urandom-only implementation that panicked on Windows).
getrandom = "0.4"

# Optional regex support for testing assertions
regex = { version = "1.13", optional = true }

# Optional gzip backend for the compression middleware (gated on the `compression` feature).
flate2 = { version = "1", optional = true }

[features]
default = ["testing"]
# TestClient and assertion helpers require asupersync's test-only Cx constructors.
# No executor dependency: TestClient's synchronous API runs on the
# crate-local `testing::block_on` (GH#31).
testing = ["asupersync/test-internals"]
# Enable regex support in testing assertions
regex = ["dep:regex"]
# Enable the gzip-based compression middleware (pulls in flate2).
compression = ["dep:flate2"]

[dev-dependencies]
# Test-only executor for `#[cfg(test)]` modules and doctests. Deliberately NOT
# a normal dependency (GH#31): production code (including the feature-gated
# `testing` module's TestClient) uses the crate-local `testing::block_on`, so
# no alternate async runtime reaches consumers' dependency closures.
futures-executor = "0.3"
serial_test = "4.0.1"
fastapi-macros = { workspace = true }

[lints]
workspace = true