[package]
name = "server-less"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
description = "Composable derive macros for common Rust patterns"
readme = "README.md"
homepage.workspace = true
keywords.workspace = true
categories.workspace = true
[dependencies]
server-less-core = { workspace = true }
server-less-macros = { workspace = true }
server-less-openapi = { workspace = true, optional = true }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
[dependencies.axum]
version = "0.8"
features = ["ws"]
optional = true
[dependencies.clap]
version = "4"
optional = true
[dependencies.tokio]
version = "1"
features = []
optional = true
[dependencies.futures]
version = "0.3"
optional = true
[dependencies.async-graphql]
version = "7"
optional = true
[dependencies.async-graphql-axum]
version = "7"
optional = true
[dependencies.clap_complete]
version = "4"
optional = true
[dependencies.clap_mangen]
version = "0.2"
optional = true
[features]
default = ["full"]
mcp = ["server-less-macros/mcp", "server-less-core/mcp"]
http = ["server-less-macros/http", "server-less-core/http", "axum", "server-less-openapi", "dep:tokio", "tokio/net"]
cli = ["server-less-macros/cli", "server-less-core/cli", "clap", "dep:tokio", "tokio/rt-multi-thread"]
ws = ["server-less-macros/ws", "server-less-core/ws", "axum", "futures", "server-less-openapi"]
jsonrpc = ["server-less-macros/jsonrpc", "server-less-core/jsonrpc", "axum", "server-less-openapi"]
graphql = ["server-less-macros/graphql", "async-graphql", "async-graphql-axum", "axum", "server-less-openapi"]
grpc = ["server-less-macros/grpc"]
capnp = ["server-less-macros/capnp"]
thrift = ["server-less-macros/thrift"]
connect = ["server-less-macros/connect"]
smithy = ["server-less-macros/smithy"]
openapi = ["server-less-macros/openapi", "server-less-openapi"]
openrpc = ["server-less-macros/openrpc"]
asyncapi = ["server-less-macros/asyncapi"]
jsonschema = ["server-less-macros/jsonschema", "server-less-core/jsonschema"]
markdown = ["server-less-macros/markdown"]
config = ["server-less-macros/config", "server-less-core/config"]
health = ["server-less-macros/health", "http"]
completions = ["server-less-macros/completions", "cli", "dep:clap_complete", "dep:clap_mangen"]
full = [
"mcp", "http", "openapi", "cli", "ws", "graphql", "jsonrpc",
"grpc", "capnp", "thrift", "connect", "smithy",
"openrpc", "asyncapi", "jsonschema",
"markdown", "config", "health", "completions"
]
[dev-dependencies]
tokio = { version = "1", features = ["full"] }
trybuild = "1"
axum = { version = "0.8", features = ["ws"] }
tower = { version = "0.5", features = ["util"] }
clap = "4"
futures = "0.3"
async-graphql = "7"
async-graphql-axum = "7"
schemars = "1"
tempfile = "3"