[package] name = "lets-see-if-this-builds-on-docs-rs" version = "0.0.2" authors = ["Apollo Graph, Inc. "] repository = "https://github.com/apollographql/router/" documentation = "https://www.apollographql.com/docs/router/" description = "A configurable, high-performance routing runtime for Apollo Federation 🚀" edition = "2021" license = "LicenseRef-ELv2" build = "build/main.rs" [[bin]] name = "router" path = "src/main.rs" [features] # Prevents the query execution to continue if any error occurs while fetching # the data of a subgraph. This is useful in development as you want to be # alerted early when something is wrong instead of receiving an invalid result. failfast = [] # Enables usage of tokio-console with the router # tokio-console also requires at build time the environment variable # RUSTFLAGS="--cfg tokio_unstable" console = ["tokio/tracing", "console-subscriber"] # "fake" feature to disable V8 usage when building on docs.rs # See https://github.com/apollographql/federation-rs/pull/185 docs_rs = ["router-bridge/docs_rs"] [package.metadata.docs.rs] features = ["docs_rs"] [dependencies] access-json = "0.1.0" anyhow = "1.0.64" apollo-parser = "0.2.11" async-compression = { version = "0.3.14", features = [ "tokio", "brotli", "gzip", "deflate", ] } async-trait = "0.1.57" atty = "0.2.14" axum = { version = "0.5.16", features = ["headers", "json", "original-uri"] } backtrace = "0.3.66" base64 = "0.13.0" buildstructor = "0.5.0" bytes = "1.2.1" clap = { version = "3.2.21", default-features = false, features = [ "env", "derive", "std", ] } console-subscriber = { version = "0.1.8", optional = true } ctor = "0.1.23" dashmap = { version = "5.4.0", features = ["serde"] } deadpool = { version = "0.9.5", features = ["rt_tokio_1"] } derivative = "2.2.0" derive_more = { version = "0.99.17", default-features = false, features = [ "from", "display", ] } directories = "4.0.1" displaydoc = "0.2" flate2 = "1.0.24" futures = { version = "0.3.24", features = ["thread-pool"] } graphql_client = "0.11.0" hex = "0.4.3" hotwatch = "0.4.6" http = "0.2.8" http-body = "0.4.5" humantime = "2.1.0" humantime-serde = "1.1.1" hyper = { version = "0.14.20", features = ["server", "client"] } hyper-rustls = { version = "0.23.0", features = ["http1", "http2"] } indexmap = { version = "1.9.1", features = ["serde-1"] } itertools = "0.10.4" jsonschema = { version = "0.16.0", default-features = false } lazy_static = "1.4.0" libc = "0.2.132" lru = "0.7.8" mediatype = "0.19.9" mockall = "0.11.2" miette = { version = "5.3.0", features = ["fancy"] } mime = "0.3.16" multimap = "0.8.3" once_cell = "1.14.0" # Any package that starts with `opentelemetry` needs to be updated with care # because it is tightly intertwined with the `tracing` packages on account of # the `opentelemetry-tracing` package. # # We are constrained in our ability to update the `tracing` packages and that is # tracked in https://github.com/apollographql/router/issues/1407. # # To codify this with code, a rule in our Renovate configuration constraints and # groups `^tracing` and `^opentelemetry*` dependencies together as of # https://github.com/apollographql/router/pull/1509. A comment which exists # there (and on `tracing` packages below) should be updated should this change. opentelemetry = { version = "0.17.0", features = [ "rt-tokio", "serialize", "metrics", ] } opentelemetry-datadog = { version = "0.5.0", features = ["reqwest-client"] } opentelemetry-http = "0.6.0" opentelemetry-jaeger = { version = "0.16.0", features = [ "collector_client", "reqwest_collector_client", "rt-tokio", ] } opentelemetry-otlp = { version = "0.10.0", default-features = false, features = [ "tonic", "tonic-build", "prost", "tls", "http-proto", "metrics", "reqwest-client", ] } opentelemetry-semantic-conventions = "0.9.0" opentelemetry-zipkin = { version = "0.15.0", default-features = false, features = [ "reqwest-client", "reqwest-rustls", ] } opentelemetry-prometheus = "0.10.0" paste = "1.0.9" pin-project-lite = "0.2.9" prometheus = "0.13" prost = "0.9.0" prost-types = "0.9.0" rand = "0.8.5" rhai = { version = "1.10.0", features = ["sync", "serde", "internals"] } regex = "1.6.0" reqwest = { version = "0.11.11", default-features = false, features = [ "rustls-tls", "json", "stream", ] } router-bridge = "0.1.7" schemars = { version = "0.8.10", features = ["url"] } shellexpand = "2.1.2" sha2 = "0.10.5" serde = { version = "1.0.144", features = ["derive", "rc"] } serde_json_bytes = { version = "0.2.0", features = ["preserve_order"] } serde_json = { version = "1.0.85", features = ["preserve_order"] } serde_urlencoded = "0.7.1" serde_yaml = "0.8.26" static_assertions = "1.1.0" sys-info = "0.9.1" thiserror = "1.0.34" tokio = { version = "1.21.0", features = ["full"] } tokio-stream = { version = "0.1.9", features = ["sync", "net"] } tokio-util = { version = "0.7.4", features = ["net", "codec"] } tonic = { version = "0.6.2", features = ["transport", "tls"] } tower = { version = "0.4.13", features = ["full"] } tower-http = { version = "0.3.4", features = [ "trace", "cors", "compression-br", "compression-deflate", "compression-gzip", "decompression-br", "decompression-deflate", "decompression-gzip", "timeout", ] } tower-service = "0.3.2" # We are constrained in our ability to update the `tracing` packages, which is # tracked in https://github.com/apollographql/router/issues/1407. # # To codify this with code, a rule in our Renovate configuration constraints and # groups `^tracing` and `^opentelemetry*` dependencies together as of # https://github.com/apollographql/router/pull/1509. A comment which exists # there (and above around the `opentelemetry` packages) should this ever change. # There is also a note below on the `^tracing` dev-dependencies! tracing = "=0.1.34" tracing-core = "=0.1.26" tracing-futures = { version = "0.2.5", features = ["futures-03"] } tracing-opentelemetry = "0.17.4" tracing-subscriber = { version = "0.3.11", features = ["env-filter", "json"] } url = { version = "2.3.1", features = ["serde"] } urlencoding = "2.1.2" uuid = { version = "1.1.2", features = ["serde", "v4"] } yaml-rust = "0.4.5" askama = "0.11.1" [target.'cfg(macos)'.dependencies] uname = "0.1.1" [target.'cfg(unix)'.dependencies] uname = "0.1.1" [dev-dependencies] insta = { version = "1.19.1", features = ["json", "redactions"] } introspector-gadget = "0.1.0" jsonpath_lib = "0.3.0" maplit = "1.0.2" memchr = { version = "2.5.0", default-features = false } mockall = "0.11.2" once_cell = "1.14.0" reqwest = { version = "0.11.11", default-features = false, features = [ "json", "stream", ] } tempfile = "3.3.0" test-log = { version = "0.2.11", default-features = false, features = [ "trace", ] } test-span = "0.7" tower-test = "0.4.0" # See note above in this file about `^tracing` packages which also applies to # these dev dependencies. tracing-subscriber = { version = "0.3", default-features = false, features = [ "env-filter", "fmt", ] } tracing-test = "0.2.2" walkdir = "2.3.2" [build-dependencies] reqwest = { version = "0.11.11", default-features = false, features = [ "rustls-tls", "blocking", ] } tonic-build = "0.6.2" [[test]] name = "integration_tests" path = "tests/integration_tests.rs"