[package]
name = "juniper"
version = "0.17.2"
edition = "2024"
rust-version = "1.85"
description = "GraphQL server library."
license = "BSD-2-Clause"
authors = [
"Magnus Hallin <mhallin@fastmail.com>",
"Christoph Herzog <chris@theduke.at>",
"Christian Legnitto <christian@legnitto.com>",
"Ilya Solovyiov <ilya.solovyiov@gmail.com>",
"Kai Ren <tyranron@gmail.com>",
]
documentation = "https://docs.rs/juniper"
homepage = "https://graphql-rust.github.io/juniper"
repository = "https://github.com/graphql-rust/juniper"
readme = "README.md"
categories = ["asynchronous", "web-programming", "web-programming::http-server"]
keywords = ["apollo", "graphql", "server", "web"]
include = ["/src/", "/CHANGELOG.md", "/LICENSE", "/README.md"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[features]
anyhow = ["dep:anyhow"]
backtrace = ["anyhow?/backtrace"]
bigdecimal = ["dep:bigdecimal", "dep:num-bigint", "dep:ryu"]
bson = ["dep:bson", "dep:tap"]
chrono = ["dep:chrono"]
chrono-clock = ["chrono", "chrono/clock"]
chrono-tz = ["dep:chrono-tz", "dep:regex"]
expose-test-schema = ["dep:anyhow", "dep:serde_json"]
jiff = ["dep:jiff"]
js = ["chrono?/wasmbind", "time?/wasm-bindgen", "uuid?/js"]
rust_decimal = ["dep:rust_decimal"]
schema-language = ["dep:graphql-parser", "dep:void"]
time = ["dep:time"]
url = ["dep:url"]
uuid = ["dep:uuid"]
[dependencies]
anyhow = { version = "1.0.47", optional = true }
arcstr = { version = "1.1", default-features = false }
async-trait = "0.1.39"
auto_enums = "0.8"
bigdecimal = { version = "0.4", optional = true }
bson = { version = "3.0", optional = true }
chrono = { version = "0.4.30", features = ["alloc"], default-features = false, optional = true }
chrono-tz = { version = "0.10", default-features = false, optional = true }
compact_str = "0.9"
derive_more = { version = "2.0", features = ["debug", "deref", "display", "error", "from", "into", "into_iterator", "try_into"] }
fnv = "1.0.5"
futures = { version = "0.3.22", features = ["alloc"], default-features = false }
graphql-parser = { version = "0.4", optional = true }
indexmap = { version = "2.0", features = ["serde"] }
itertools = "0.14"
jiff = { version = "0.2", features = ["std"], default-features = false, optional = true }
juniper_codegen = { version = "0.17.0", path = "../juniper_codegen" }
ref-cast = "1.0"
rust_decimal = { version = "1.20", default-features = false, optional = true }
ryu = { version = "1.0", optional = true }
serde = { version = "1.0.122", features = ["derive"] }
serde_json = { version = "1.0.18", features = ["std"], default-features = false, optional = true }
static_assertions = "1.1"
time = { version = "0.3.37", features = ["formatting", "macros", "parsing"], optional = true }
url = { version = "2.0", optional = true }
uuid = { version = "1.3", default-features = false, optional = true }
num-bigint = { version = "0.4.2", optional = true }
regex = { version = "1.6", features = ["std"], default-features = false, optional = true }
tap = { version = "1.0.1", optional = true }
void = { version = "1.0.2", optional = true }
[dev-dependencies]
arcstr = { version = "1.1", features = ["serde"] }
bencher = "0.1.2"
chrono = { version = "0.4.30", features = ["alloc"], default-features = false }
compact_str = { version = "0.9", features = ["serde"] }
jiff = { version = "0.2", features = ["tzdb-bundle-always"], default-features = false }
pretty_assertions = "1.0.0"
serde_json = "1.0.18"
serial_test = "3.0"
tokio = { version = "1.0", features = ["macros", "time", "rt-multi-thread"] }
[lints.clippy]
allow_attributes = "warn"
allow_attributes_without_reason = "warn"
[lints.rust]
closure_returning_async_block = "warn"
future_incompatible = { level = "warn", priority = -1 }
impl_trait_redundant_captures = "warn"
missing_docs = "warn"
non_ascii_idents = "forbid"
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(nightly)'] }
unused_crate_dependencies = "warn"
[[bench]]
name = "bench"
harness = false
path = "benches/bench.rs"