rustapi-core 0.1.12

The core engine of the RustAPI framework. Provides the hyper-based HTTP server, router, extraction logic, and foundational traits.
Documentation
[package]

name = "rustapi-core"

description = "The core engine of the RustAPI framework. Provides the hyper-based HTTP server, router, extraction logic, and foundational traits."

documentation = "https://docs.rs/rustapi-core"

version.workspace = true

edition.workspace = true

authors.workspace = true

license.workspace = true

repository.workspace = true

homepage.workspace = true



[dependencies]

# Async

tokio = { workspace = true }

futures-util = { workspace = true }

pin-project-lite = { workspace = true }



# HTTP

hyper = { workspace = true }

hyper-util = { workspace = true }

http = { workspace = true }

http-body-util = { workspace = true }

bytes = { workspace = true }



# Router

matchit = { workspace = true }



# Serialization

serde = { workspace = true }

serde_json = { workspace = true }

serde_urlencoded = "0.7"

simd-json = { version = "0.14", optional = true }



# Stack-allocated collections for performance

smallvec = "1.13"



# Middleware

tower = { workspace = true }

tower-service = { workspace = true }

tower-http = { workspace = true }



# Utilities

thiserror = { workspace = true }

tracing = { workspace = true }

tracing-subscriber = { workspace = true }

inventory = { workspace = true }

linkme = { workspace = true }

uuid = { workspace = true }

base64 = "0.22"



# Compression (optional)

flate2 = { version = "1.0", optional = true }

brotli = { version = "6.0", optional = true }



# Cookies (optional)

cookie = { version = "0.18", optional = true }



# Validation

rustapi-validate = { workspace = true }



# Metrics (optional)

prometheus = { workspace = true, optional = true }



# SQLx (optional)

sqlx = { version = "0.8", optional = true, default-features = false }



# OpenAPI

rustapi-openapi = { workspace = true, default-features = false }



[dev-dependencies]

tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }

proptest = "1.4"

[features]

default = ["swagger-ui", "tracing"]

swagger-ui = ["rustapi-openapi/swagger-ui"]

test-utils = []

cookies = ["dep:cookie"]

sqlx = ["dep:sqlx"]

metrics = ["dep:prometheus"]

compression = ["dep:flate2"]

compression-brotli = ["compression", "dep:brotli"]

simd-json = ["dep:simd-json"]

tracing = []