[package]
name = "async-graphql"
version = "2.8.0"
authors = ["sunli <scott_s829@163.com>", "Koxiaet"]
edition = "2018"
description = "A GraphQL server library implemented in Rust"
license = "MIT/Apache-2.0"
documentation = "https://docs.rs/async-graphql/"
homepage = "https://github.com/async-graphql/async-graphql"
repository = "https://github.com/async-graphql/async-graphql"
keywords = ["futures", "async", "graphql"]
categories = ["network-programming", "asynchronous"]
readme = "README.md"

[features]
default = []
apollo_tracing = ["chrono"]
apollo_persisted_queries = ["lru", "sha2"]
unblock = ["blocking"]
string_number = ["num-traits"]
dataloader = ["futures-timer", "futures-channel", "lru"]
tracing = ["tracinglib", "tracing-futures"]

[dependencies]
async-graphql-derive = { path = "derive", version = "=2.8.0" }
async-graphql-value = { path = "value", version = "=2.6.5" }
async-graphql-parser = { path = "parser", version = "=2.7.1" }

async-stream = "0.3.0"
async-trait = "0.1.48"
fnv = "1.0.7"
futures-util = { version = "0.3.13", default-features = false, features = ["io"] }
indexmap = "1.6.2"
once_cell = "1.7.2"
pin-project-lite = "0.2.6"
regex = "1.4.5"
serde = { version = "1.0.125", features = ["derive"] }
serde_json = "1.0.64"
spin = "0.9.0"
thiserror = "1.0.24"
static_assertions = "1.1.0"
http = "0.2.3"
multer = "1.2.2"
tempfile = "3.2.0"

# Feature optional dependencies
bson = { version = "1.2.0", optional = true }
chrono = { version = "0.4.19", optional = true }
chrono-tz = { version = "0.5.3", optional = true }
log = { version = "0.4.14", optional = true }
tracinglib = { version = "0.1.25", optional = true, package = "tracing" }
tracing-futures = { version = "0.2.5", optional = true, features = ["std-future", "futures-03"] }
opentelemetry = { version = "0.13.0", optional = true }
url = { version = "2.2.1", optional = true }
uuid = { version = "0.8.2", optional = true, features = ["v4", "serde"] }

# Non-feature optional dependencies
blocking = { version = "1.0.2", optional = true }
lru = { version = "0.6.5", optional = true }
num-traits = { version = "0.2.14", optional = true }
sha2 = { version = "0.9.3", optional = true }
futures-timer = { version = "3.0.2", optional = true }
futures-channel = { version = "0.3.13", optional = true }

[dev-dependencies]
tokio = { version = "1.4.0", features = ["macros", "rt-multi-thread", "sync", "time"] }
futures-channel = "0.3.13"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[workspace]
members = [
    "value",
    "parser",
    "derive",
    "integrations/actix-web",
    "integrations/rocket",
    "integrations/tide",
    "integrations/warp",
]
