[package]
edition = "2021"
name = "a3s-boot"
version = "0.1.3"
authors = ["A3S Lab"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Adapter-first modular Rust web framework for A3S inspired by Nest.js"
documentation = "https://docs.rs/a3s-boot"
readme = "README.md"
keywords = [
"web",
"framework",
"modular",
"nest",
"adapter",
]
categories = [
"web-programming",
"asynchronous",
]
license = "MIT"
repository = "https://github.com/A3S-Lab/Boot"
[features]
auth = []
axum = [
"dep:axum",
"dep:http-body-util",
"dep:tokio",
]
cache = []
compression = ["dep:flate2"]
config = ["dep:a3s-acl"]
cqrs = []
database = []
default = [
"axum",
"macros",
"shutdown-hooks",
]
events = ["dep:a3s-event"]
file-upload = [
"dep:bytes",
"dep:multer",
]
grpc-transport = [
"dep:prost",
"dep:tokio",
"dep:tonic",
"dep:tonic-prost",
]
health = []
http-client = ["dep:reqwest"]
ilink = [
"dep:async-trait",
"dep:base64",
"dep:rand",
"dep:reqwest",
"dep:url",
"dep:zeroize",
]
kafka-transport = [
"dep:chrono",
"dep:rskafka",
"dep:tokio",
]
logging = []
macros = ["dep:a3s-boot-macros"]
mqtt-transport = [
"dep:rumqttc",
"dep:tokio",
]
nats-transport = [
"dep:async-nats",
"dep:tokio",
]
openapi-schemas = ["dep:schemars"]
queue = [
"dep:a3s-lane",
"dep:chrono",
"dep:tokio",
]
rabbitmq-transport = [
"dep:lapin",
"dep:tokio",
]
redis-transport = [
"dep:redis",
"dep:tokio",
]
request-context = ["dep:tokio"]
schedule = [
"dep:chrono",
"dep:cron",
"dep:tokio",
]
security = ["dep:sha2"]
session = ["dep:getrandom"]
shutdown-hooks = [
"dep:tokio",
"tokio/macros",
"tokio/signal",
]
static = ["dep:tokio"]
tcp-transport = ["dep:tokio"]
[lib]
name = "a3s_boot"
path = "src/lib.rs"
[[example]]
name = "hello"
path = "examples/hello.rs"
required-features = ["axum"]
[[test]]
name = "app_enhancer_protocols"
path = "tests/app_enhancer_protocols.rs"
[[test]]
name = "app_enhancer_resolution"
path = "tests/app_enhancer_resolution.rs"
[[test]]
name = "app_enhancer_retries"
path = "tests/app_enhancer_retries.rs"
[[test]]
name = "app_enhancer_topology"
path = "tests/app_enhancer_topology.rs"
[[test]]
name = "app_enhancers"
path = "tests/app_enhancers.rs"
[[test]]
name = "auth"
path = "tests/auth.rs"
[[test]]
name = "axum_adapter"
path = "tests/axum_adapter.rs"
[[test]]
name = "body_field_macros"
path = "tests/body_field_macros.rs"
[[test]]
name = "cache"
path = "tests/cache.rs"
[[test]]
name = "compression"
path = "tests/compression.rs"
[[test]]
name = "config"
path = "tests/config.rs"
[[test]]
name = "controllers"
path = "tests/controllers.rs"
[[test]]
name = "cookie_macros"
path = "tests/cookie_macros.rs"
[[test]]
name = "cqrs"
path = "tests/cqrs.rs"
[[test]]
name = "database"
path = "tests/database.rs"
[[test]]
name = "decorator_composition_macros"
path = "tests/decorator_composition_macros.rs"
[[test]]
name = "discovery"
path = "tests/discovery.rs"
[[test]]
name = "events"
path = "tests/events.rs"
[[test]]
name = "file_upload"
path = "tests/file_upload.rs"
[[test]]
name = "file_upload_macros"
path = "tests/file_upload_macros.rs"
[[test]]
name = "framework"
path = "tests/framework.rs"
[[test]]
name = "health"
path = "tests/health.rs"
[[test]]
name = "http"
path = "tests/http.rs"
[[test]]
name = "http_client"
path = "tests/http_client.rs"
[[test]]
name = "lazy_modules"
path = "tests/lazy_modules.rs"
[[test]]
name = "lifecycle"
path = "tests/lifecycle.rs"
[[test]]
name = "logging"
path = "tests/logging.rs"
[[test]]
name = "macros"
path = "tests/macros.rs"
[[test]]
name = "message_controller_contexts"
path = "tests/message_controller_contexts.rs"
[[test]]
name = "module_registration"
path = "tests/module_registration.rs"
[[test]]
name = "openapi"
path = "tests/openapi.rs"
[[test]]
name = "openapi_security_macros"
path = "tests/openapi_security_macros.rs"
[[test]]
name = "pipeline"
path = "tests/pipeline.rs"
[[test]]
name = "provider_contexts"
path = "tests/provider_contexts.rs"
[[test]]
name = "providers"
path = "tests/providers.rs"
[[test]]
name = "queue"
path = "tests/queue.rs"
[[test]]
name = "request_context"
path = "tests/request_context.rs"
[[test]]
name = "response_passthrough_macros"
path = "tests/response_passthrough_macros.rs"
[[test]]
name = "routing"
path = "tests/routing.rs"
[[test]]
name = "schedule"
path = "tests/schedule.rs"
[[test]]
name = "security"
path = "tests/security.rs"
[[test]]
name = "serialization"
path = "tests/serialization.rs"
[[test]]
name = "session"
path = "tests/session.rs"
[[test]]
name = "session_macros"
path = "tests/session_macros.rs"
[[test]]
name = "static_files"
path = "tests/static_files.rs"
[[test]]
name = "testing"
path = "tests/testing.rs"
[[test]]
name = "transport"
path = "tests/transport.rs"
[[test]]
name = "transport_contextual_handlers"
path = "tests/transport_contextual_handlers.rs"
[[test]]
name = "validation"
path = "tests/validation.rs"
[[test]]
name = "versioning"
path = "tests/versioning.rs"
[[test]]
name = "view"
path = "tests/view.rs"
[[test]]
name = "websocket"
path = "tests/websocket.rs"
[dependencies.a3s-acl]
version = "0.2.1"
optional = true
[dependencies.a3s-boot-macros]
version = "0.1.2"
optional = true
[dependencies.a3s-event]
version = "0.3.0"
optional = true
default-features = false
[dependencies.a3s-lane]
version = "0.5.1"
optional = true
default-features = false
[dependencies.async-nats]
version = "0.49.1"
optional = true
default-features = false
[dependencies.async-trait]
version = "0.1"
optional = true
[dependencies.axum]
version = "0.8"
features = ["ws"]
optional = true
[dependencies.base64]
version = "0.22"
optional = true
[dependencies.bytes]
version = "1"
optional = true
[dependencies.chrono]
version = "0.4"
optional = true
[dependencies.cron]
version = "0.17.0"
optional = true
[dependencies.flate2]
version = "1"
optional = true
[dependencies.futures-core]
version = "0.3"
[dependencies.futures-util]
version = "0.3"
[dependencies.getrandom]
version = "0.2"
optional = true
[dependencies.http-body-util]
version = "0.1"
optional = true
[dependencies.lapin]
version = "4.10.0"
features = ["tokio"]
optional = true
default-features = false
[dependencies.multer]
version = "3"
optional = true
[dependencies.percent-encoding]
version = "2"
[dependencies.prost]
version = "0.14.4"
optional = true
[dependencies.rand]
version = "0.8"
optional = true
[dependencies.redis]
version = "1.3.0"
features = ["tokio-comp"]
optional = true
default-features = false
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"rustls-tls",
"stream",
]
optional = true
default-features = false
[dependencies.rskafka]
version = "0.6.0"
optional = true
default-features = false
[dependencies.rumqttc]
version = "0.25.1"
optional = true
default-features = false
[dependencies.schemars]
version = "1"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.serde_urlencoded]
version = "0.7"
[dependencies.sha2]
version = "0.10"
optional = true
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = [
"fs",
"io-util",
"net",
"rt",
"sync",
"time",
]
optional = true
[dependencies.tonic]
version = "0.14.6"
features = [
"codegen",
"transport",
]
optional = true
default-features = false
[dependencies.tonic-prost]
version = "0.14.6"
optional = true
[dependencies.url]
version = "2"
optional = true
[dependencies.zeroize]
version = "1"
features = ["derive"]
optional = true
[dev-dependencies.tokio]
version = "1"
features = [
"macros",
"rt",
"sync",
"time",
]
[dev-dependencies.tower]
version = "0.5"
features = ["util"]