graphql-engine/v3/Cargo.toml

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

153 lines
4.9 KiB
TOML
Raw Normal View History

[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"] }
Bump derive_more from 0.99.18 to 1.0.0 (#1310) Bumps [derive_more](https://github.com/JelteF/derive_more) from 0.99.18 to 1.0.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/JelteF/derive_more/releases">derive_more's releases</a>.</em></p> <blockquote> <h2>v1.0.0 - Finally a stable release</h2> <p><code>derive_more</code> is a library that adds derives for many of the standard library traits. By using this library the following code just works:</p> <pre lang="rust"><code>use derive_more::{Add, Display, From, Into}; <p>#[derive(PartialEq, From, Add)] struct MyInt(i32);</p> <p>#[derive(PartialEq, From, Into)] struct Point2D { x: i32, y: i32, }</p> <p>#[derive(PartialEq, From, Add, Display)] enum MyEnum { #[display(&quot;int: {_0}&quot;)] Int(i32), Uint(u32), #[display(&quot;nothing&quot;)] Nothing, }</p> <p>assert!(MyInt(11) == MyInt(5) + 6.into()); assert!((5, 6) == Point2D { x: 5, y: 6 }.into()); assert!(MyEnum::Int(15) == (MyEnum::Int(8) + 7.into()).unwrap()); assert!(MyEnum::Int(15).to_string() == &quot;int: 15&quot;); assert!(MyEnum::Uint(42).to_string() == &quot;42&quot;); assert!(MyEnum::Nothing.to_string() == &quot;nothing&quot;); </code></pre></p> <p>Now, more than 8 years after the first commit and almost 5 years after the 0.99.0 release, <code>derive_more</code> has finally reached its 1.0.0 release. This release contains a lot of changes (including some breaking ones) to make it easier to use the derives and make it possible to extend them without having to break backwards compatibility again. There are five major changes that I would like to call out, but there are many more changes that are documented below:</p> <ol> <li>There is a new <code>Debug</code> derive that can be used to easily customize <code>Debug</code> formatting.</li> <li>A greatly improved <code>Display</code> derive, which allows you to do anything that <a href="https://github.com/dtolnay/thiserror"><code>thiserror</code></a> provides, but it works for any type not just errors. And by combining the <code>Display</code> derive with the <code>Error</code> and <code>From</code> derives, there shouldn't really be any need to use <code>thiserror</code> anymore (if you are missing a feature/behaviour from <code>thiserror</code> please report an issue).</li> <li>Traits that can return errors now return a type that implements <code>Error</code> when an error occurs instead of a <code>&amp;'static str</code>.</li> <li>When using <code>use derive_more::SomeTrait</code> the actual trait is also imported not just the derive macro. This is especially useful for <code>Error</code> and <code>Display</code></li> <li>The docs are now rendered on docs.rs and are much better overall.</li> </ol> <h3>Breaking changes</h3> <ul> <li>The minimum supported Rust version (MSRV) is now Rust 1.75.</li> <li>Add the <code>std</code> feature which should be disabled in <code>no_std</code> environments.</li> <li>All Cargo features, except <code>std</code>, are now disabled by default. The <code>full</code> feature can be used to get the old behavior of supporting all possible derives.</li> <li>The <code>TryFrom</code>, <code>Add</code>, <code>Sub</code>, <code>BitAnd</code>, <code>BitOr</code>, <code>BitXor</code>, <code>Not</code> and <code>Neg</code> derives now return a dedicated error type instead of a <code>&amp;'static str</code> on error.</li> <li>The <code>FromStr</code> derive now uses a dedicated <code>FromStrError</code> error type instead of generating unique one each time.</li> <li>The <code>Display</code> derive (and other <code>fmt</code>-like ones) now uses <code>#[display(&quot;...&quot;, (&lt;expr&gt;),*)]</code> syntax instead of <code>#[display(fmt = &quot;...&quot;, (&quot;&lt;expr&gt;&quot;),*)]</code>, and <code>#[display(bound(&lt;bound&gt;))]</code> instead of <code>#[display(bound = &quot;&lt;bound&gt;&quot;)]</code>. So without the double quotes around the expressions and bounds.</li> <li>The <code>Debug</code> and <code>Display</code> derives (and other <code>fmt</code>-like ones) now transparently delegate to the inner type when <code>#[display(&quot;...&quot;, (&lt;expr&gt;),*)]</code> attribute is trivially substitutable with a transparent call. (<a href="https://redirect.github.com/JelteF/derive_more/pull/322">#322</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/JelteF/derive_more/blob/master/CHANGELOG.md">derive_more's changelog</a>.</em></p> <blockquote> <h2>1.0.0 - 2024-08-07</h2> <p>More than 8 years after the first commit and almost 5 years after the 0.99.0 release, <code>derive_more</code> has finally reached its 1.0.0 release. This release contains a lot of changes (including some breaking ones) to make it easier to use the derives and make it possible to extend them without having to break backwards compatibility again. There are five major changes that I would like to call out, but there are many more changes that are documented below:</p> <ol> <li>There is a new <code>Debug</code> derive that can be used to easily customize <code>Debug</code> formatting.</li> <li>A greatly improved <code>Display</code> derive, which allows you to do anything that <a href="https://github.com/dtolnay/thiserror"><code>thiserror</code></a> provides, but it works for any type not just errors. And by combining the <code>Display</code> derive with the <code>Error</code> and <code>From</code> derives, there shouldn't really be any need to use <code>thiserror</code> anymore (if you are missing a feature/behaviour from <code>thiserror</code> please report an issue).</li> <li>Traits that can return errors now return a type that implements <code>Error</code> when an error occurs instead of a <code>&amp;'static str</code>.</li> <li>When using <code>use derive_more::SomeTrait</code> the actual trait is also imported not just the derive macro. This is especially useful for <code>Error</code> and <code>Display</code></li> <li>The docs are now rendered on docs.rs and are much better overall.</li> </ol> <h3>Breaking changes</h3> <ul> <li>The minimum supported Rust version (MSRV) is now Rust 1.75.</li> <li>Add the <code>std</code> feature which should be disabled in <code>no_std</code> environments.</li> <li>All Cargo features, except <code>std</code>, are now disabled by default. The <code>full</code> feature can be used to get the old behavior of supporting all possible derives.</li> <li>The <code>TryFrom</code>, <code>Add</code>, <code>Sub</code>, <code>BitAnd</code>, <code>BitOr</code>, <code>BitXor</code>, <code>Not</code> and <code>Neg</code> derives now return a dedicated error type instead of a <code>&amp;'static str</code> on error.</li> <li>The <code>FromStr</code> derive now uses a dedicated <code>FromStrError</code> error type instead of generating unique one each time.</li> <li>The <code>Display</code> derive (and other <code>fmt</code>-like ones) now uses <code>#[display(&quot;...&quot;, (&lt;expr&gt;),*)]</code> syntax instead of <code>#[display(fmt = &quot;...&quot;, (&quot;&lt;expr&gt;&quot;),*)]</code>, and <code>#[display(bound(&lt;bound&gt;))]</code> instead of <code>#[display(bound = &quot;&lt;bound&gt;&quot;)]</code>. So without the double quotes around the expressions and bounds.</li> <li>The <code>Debug</code> and <code>Display</code> derives (and other <code>fmt</code>-like ones) now transparently delegate to the inner type when <code>#[display(&quot;...&quot;, (&lt;expr&gt;),*)]</code> attribute is trivially substitutable with a transparent call. (<a href="https://redirect.github.com/JelteF/derive_more/pull/322">#322</a>)</li> <li>The <code>DebugCustom</code> derive is renamed to just <code>Debug</code> (gated now under a separate <code>debug</code> feature), and its semantics were changed to be a superset of <code>std</code> variant of <code>Debug</code>.</li> <li>The <code>From</code> derive doesn't derive <code>From&lt;()&gt;</code> for enum variants without any fields anymore. This feature was removed because it was considered useless in</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/JelteF/derive_more/commit/d7f5b9e94d024790682f6fc4dcca13941cce64c8"><code>d7f5b9e</code></a> chore: Release</li> <li><a href="https://github.com/JelteF/derive_more/commit/40201b1e2e39d449f998d57e1a8471f5bab0b069"><code>40201b1</code></a> Update release date to be correct</li> <li><a href="https://github.com/JelteF/derive_more/commit/88863ca4e69eb11ac0f476c6afca45fe57bd6576"><code>88863ca</code></a> Update changelog wording</li> <li><a href="https://github.com/JelteF/derive_more/commit/b713835894454cd0246dd80e13ce72cb056c82b0"><code>b713835</code></a> Improve error when not enabling any features</li> <li><a href="https://github.com/JelteF/derive_more/commit/330e4252fbc12e41794f7f5e164e96423f6f9ff1"><code>330e425</code></a> Order features in Cargo.toml alphabetically</li> <li><a href="https://github.com/JelteF/derive_more/commit/84f2cbb05fc7cefb433144b3f86a85c0bc3e339b"><code>84f2cbb</code></a> Update README and CHANGELOG in preparation of 1.0.0</li> <li><a href="https://github.com/JelteF/derive_more/commit/e8d60cf0e5c4ef21ffb96617b5be160990c56741"><code>e8d60cf</code></a> Add compile_fail test for on purpose limited bounds (<a href="https://redirect.github.com/JelteF/derive_more/issues/393">#393</a>, <a href="https://redirect.github.com/JelteF/derive_more/issues/392">#392</a>)</li> <li><a href="https://github.com/JelteF/derive_more/commit/f665d18125e3b7eba34e71a3e6d20060a05c41a7"><code>f665d18</code></a> Make anyhow reference a bit less strong</li> <li><a href="https://github.com/JelteF/derive_more/commit/6d632b2db29d138f72f5fbc3023972d0b00ed614"><code>6d632b2</code></a> Add release announcement (<a href="https://redirect.github.com/JelteF/derive_more/issues/390">#390</a>)</li> <li><a href="https://github.com/JelteF/derive_more/commit/e87ab1315f01223eb20b232ca5a9294285d7b993"><code>e87ab13</code></a> Don't create git tags for derive_more-impl (<a href="https://redirect.github.com/JelteF/derive_more/issues/391">#391</a>)</li> <li>Additional commits viewable in <a href="https://github.com/JelteF/derive_more/compare/v0.99.18...v1.0.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=derive_more&package-manager=cargo&previous-version=0.99.18&new-version=1.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Daniel Harvey <danieljamesharvey@gmail.com> V3_GIT_ORIGIN_REV_ID: 2a5d2033a90d16d5bf2096db5a717e31128b8c00
2024-11-04 13:39:00 +03:00
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"
Bump tokio-tungstenite from 0.20.1 to 0.24.0 (#1211) Bumps [tokio-tungstenite](https://github.com/snapview/tokio-tungstenite) from 0.20.1 to 0.24.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/snapview/tokio-tungstenite/blob/master/CHANGELOG.md">tokio-tungstenite's changelog</a>.</em></p> <blockquote> <h1>0.24.0</h1> <ul> <li>Update dependencies (TLS, tungstenite).</li> <li>Return a runtime error when WSS URLs are used without a proper TLS feature enabled.</li> </ul> <h1>0.23.1</h1> <ul> <li>Introduce a <code>url</code> feature (proxies to <code>tungstenite/url</code>).</li> </ul> <h1>0.23.0</h1> <ul> <li>Update <code>tungstenite</code> to <code>0.23.0</code>.</li> <li>Disable default features on TLS crates.</li> </ul> <h1>0.22.0</h1> <ul> <li>Update TLS dependencies.</li> <li><del>Update <code>tungstenite</code> to match <code>0.22.0</code>.</del></li> </ul> <h1>0.21.0</h1> <ul> <li>Update TLS dependencies.</li> <li>Update <code>tungstenite</code> to <code>0.21.0</code>.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/snapview/tokio-tungstenite/commit/cae2e89102dbb212ee723b912f7dc540398be28e"><code>cae2e89</code></a> Bump version -&gt; 0.24.0</li> <li><a href="https://github.com/snapview/tokio-tungstenite/commit/0b9d97bc148daabc51a36a38a10d0b1b2b13c55e"><code>0b9d97b</code></a> deps: update <code>rustls-native-certs</code> to 0.8 (<a href="https://redirect.github.com/snapview/tokio-tungstenite/issues/348">#348</a>)</li> <li><a href="https://github.com/snapview/tokio-tungstenite/commit/94a35a0d6bcdc2f07d05f9e3edcbc7fcb1d5b020"><code>94a35a0</code></a> Additional Documentation of <code>IntoClientRequest</code> on <code>connect_async</code> (<a href="https://redirect.github.com/snapview/tokio-tungstenite/issues/342">#342</a>)</li> <li><a href="https://github.com/snapview/tokio-tungstenite/commit/83258250c25d505f6e7c6ff29fed3f08433b49fe"><code>8325825</code></a> Prepare 0.23.1 release</li> <li><a href="https://github.com/snapview/tokio-tungstenite/commit/db9ae7eb715e2b4a89deed4bc25d83e1d513d01f"><code>db9ae7e</code></a> Re-introduce the <code>url</code> feature</li> <li><a href="https://github.com/snapview/tokio-tungstenite/commit/a53454b16d9eff3fbaa7445541c7fe1c6ccad4d7"><code>a53454b</code></a> Prepare 0.23.0 release</li> <li><a href="https://github.com/snapview/tokio-tungstenite/commit/c1025d59ff15eeefc2dc07495fd6a8365cc6e0af"><code>c1025d5</code></a> Disable rustls default features</li> <li><a href="https://github.com/snapview/tokio-tungstenite/commit/ff311384b6816aa8df20b3f2be828abbe5f2abca"><code>ff31138</code></a> Prepare 0.22.0 release</li> <li><a href="https://github.com/snapview/tokio-tungstenite/commit/ad1d511a30878590c7a41e9cd50b668e8b19cd37"><code>ad1d511</code></a> Update <code>rustls</code> to 0.23 and <code>tokio-rustls</code> to 0.26</li> <li><a href="https://github.com/snapview/tokio-tungstenite/commit/052d085aff4708b924b92becaa83923b15045841"><code>052d085</code></a> Simplify response body type in <code>server-custom-accept</code> example</li> <li>Additional commits viewable in <a href="https://github.com/snapview/tokio-tungstenite/compare/v0.20.1...v0.24.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tokio-tungstenite&package-manager=cargo&previous-version=0.20.1&new-version=0.24.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> V3_GIT_ORIGIN_REV_ID: aecbec51ea7eb1a46debda1f081aa913d093018e
2024-10-14 11:56:16 +03:00
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"] }