mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-15 09:22:43 +03:00
056b1c18fc
<!-- 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
153 lines
4.9 KiB
TOML
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"] }
|