graphql-engine/v3/Cargo.toml
Daniel Harvey 056b1c18fc Stop Nix rebuilding (#1329)
<!-- The PR description should answer 2 important questions: -->

### What

Our Nix build was building all the workspace crates as part of it's deps
step. This means when any library crate is changed, we throw away all
the caching, which isn't ideal. This filters the source files out of
those builds, so that we get more cache hits. We also move all Cargo
features into the workspace, which I've been meaning to do for ages, so
things are more consistent, and again, we get more cache hits generally.

V3_GIT_ORIGIN_REV_ID: c724b152692575edf6c00ab426e48ecca13aa998
2024-11-11 12:06:31 +00:00

153 lines
4.9 KiB
TOML

[workspace]
resolver = "2"
package.version = "3.0.0"
package.edition = "2021"
package.license = "Apache-2.0"
members = [
"crates/auth/*",
"crates/compatibility",
"crates/custom-connector",
"crates/engine",
"crates/execute",
"crates/graphql/*",
"crates/jsonapi",
"crates/metadata-resolve",
"crates/metadata-schema-generator",
"crates/open-dds",
"crates/plan",
"crates/plan-types",
"crates/plugins/*",
"crates/query-usage-analytics",
"crates/sql",
"crates/utils/*",
]
# generally following guidance from https://nnethercote.github.io/perf-book/build-configuration.html
[profile.release]
codegen-units = 1 # reduce parallelisation to increase optimisations
[workspace.lints.clippy]
all = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
# ban printing to stdout and stderr
print_stdout = "warn"
print_stderr = "warn"
# unstable warnings; we might need to suppress them
redundant_clone = "warn"
# disable this warning until
# https://github.com/rust-lang/rust-clippy/issues/12643 is fixed
manual_unwrap_or_default = "allow"
# disable certain pedantic warnings
doc_markdown = "allow"
implicit_hasher = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
return_self_not_must_use = "allow"
struct_field_names = "allow"
wildcard_imports = "allow"
trivially_copy_pass_by_ref = "allow"
# disable these for now, but we should probably fix them
result_large_err = "allow"
similar_names = "allow"
too_many_arguments = "allow"
too_many_lines = "allow"
unreadable_literal = "allow"
used_underscore_binding = "allow"
[workspace.lints.rustdoc]
private_intra_doc_links = "allow"
[workspace.dependencies]
ndc-models = { git = "https://github.com/hasura/ndc-spec.git", tag = "v0.2.0-rc.1" } # When you update this tag, also update the schema references in crates/open-dds/src/data_connector.rs
ndc-models-v01 = { package = "ndc-models", git = "https://github.com/hasura/ndc-spec.git", tag = "v0.1.6" } # When you update this tag, also update the schema references in crates/open-dds/src/data_connector.rs
anyhow = "1"
apollo-parser = "0.7"
async-graphql-parser = "7"
async-recursion = "1"
async-trait = "0.1"
axum = { version = "0.7", features = ["http2", "ws"] }
axum-core = "0.4"
base64 = "0.22"
bincode = "1"
blake2 = "0.10.6"
bson = "2"
build-data = "0.2"
bytes = "1"
chrono = "0.4"
clap = { version = "4", features = ["derive", "env"] }
convert_case = "0.6"
cookie = "0.18"
criterion = { version = "0.5", features = ["html_reports", "async_tokio"] }
darling = "0.20"
datafusion = { version = "41", features = ["serde"] }
derive_more = { version = "1.0", features = ["full"] }
diffy = "0.4"
env_logger = "0.11"
expect-test = "1"
futures = "0.3"
futures-util = "0.3"
goldenfile = "1"
graphql-parser = "0.4"
http = "1"
http-body-util = "0.1"
human_bytes = "0.4"
indexmap = { version = "2", features = ["serde"] }
insta = { version = "1", features = ["glob", "json"] }
json_value_merge = "2"
jsonapi_library = { package = "jsonapi", git = "https://github.com/hasura/jsonapi-rust.git", rev = "9b5a3a08414e559c7285b539acd4d4fc7b31f3b5" }
jsonptr = "0.4"
jsonwebkey = { version = "0.3", features = ["generate", "jsonwebtoken","pkcs-convert"] }
jsonwebtoken = "8"
lazy_static = "1.5.0"
lexical-core = "0.8"
mimalloc = "0.1"
mockito = { version = "~1.4", default-features = false } # v1.5+ depends on http v1
nonempty = { version = "0.10", features = ["serialize"] }
oas3 = "0.12.1"
openssl = "0.10"
opentelemetry = "0.24"
opentelemetry-contrib = "0.16"
opentelemetry-http = "0.13"
opentelemetry-otlp = "0.17"
opentelemetry-semantic-conventions = "0.16"
opentelemetry-stdout = { version = "0.5", default-features = false, features = ["trace"] }
opentelemetry-zipkin = "0.22"
opentelemetry_sdk = { version = "0.24", features = ["rt-tokio"] }
postcard = { version = "1", features = ["use-std"] }
pretty_assertions = "1"
proc-macro2 = "1"
quote = "1"
rand = "0.8"
ref-cast = "1"
regex = "1"
reqwest = { version = "0.12", features = ["json", "multipart", "stream"] }
rmp-serde = "1"
semver = "1.0"
schemars = { version = "0.8", features = ["preserve_order", "smol_str", "url"] }
serde = { version = "1", features = ["derive", "rc"] }
serde_json = { version = "1", features = ["preserve_order"] }
serde_path_to_error = "0.1"
serde_with = { version = "3", features = ["indexmap_2"] }
sha2 = "0.10"
smol_str = "0.1"
strum = "0.26"
strum_macros = "0.26"
syn = "2"
thiserror = "1"
tokio = { version = "1", features = ["macros", "parking_lot", "rt-multi-thread", "signal", "time"] }
tokio-test = "0.4"
tokio-tungstenite = "0.24.0"
tower = "0.5"
# Prefer zstd-encoded request bodies, but also support gzip in case a client can't do that
tower-http = { version = "0.5", features = ["cors", "fs", "decompression-gzip", "decompression-zstd", "trace" ] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["json"] }
transitive = "0.5"
url = { version = "2", features = ["serde"] }
uuid = { version = "1", features = ["v4"] }