rustapi-extras 0.1.3

Optional security and utility features for RustAPI framework
Documentation
[package]

name = "rustapi-extras"

description = "Optional security and utility features for RustAPI framework"

version.workspace = true

edition.workspace = true

authors.workspace = true

license.workspace = true

repository.workspace = true

homepage.workspace = true

documentation.workspace = true



[dependencies]

# Core dependency

rustapi-core = { workspace = true }

rustapi-openapi = { workspace = true }



# Async

tokio = { workspace = true }

futures-util = { workspace = true }



# HTTP

http = { workspace = true }

bytes = { workspace = true }

http-body-util = { workspace = true }



# Serialization

serde = { workspace = true }

serde_json = { workspace = true }



# Utilities

thiserror = { workspace = true }

tracing = { workspace = true }



# JWT (feature-gated)

jsonwebtoken = { version = "9.3", optional = true }



# Rate limiting (feature-gated)

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



# SQLx (feature-gated)

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



# Configuration (feature-gated)

dotenvy = { version = "0.15", optional = true }

envy = { version = "0.4", optional = true }



# Cookies (feature-gated)

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



[dev-dependencies]

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

proptest = "1.4"

rustapi-core = { workspace = true, features = ["test-utils"] }



[features]

default = []



# Individual features

jwt = ["dep:jsonwebtoken"]

cors = []

rate-limit = ["dep:dashmap"]

config = ["dep:dotenvy", "dep:envy"]

cookies = ["dep:cookie"]

sqlx = ["dep:sqlx"]



# Meta feature that enables all security features

extras = ["jwt", "cors", "rate-limit"]



# Full feature set

full = ["extras", "config", "cookies", "sqlx"]