diff --git a/buf.gen.yaml b/buf.gen.yaml index d02588fc78..04cc738bd4 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -44,6 +44,8 @@ plugins: - json_names_for_fields=true - plugin: buf.build/community/neoeinstein-prost out: rust/libs/proto/src + opt: + - enable_type_names - plugin: buf.build/community/neoeinstein-tonic out: rust/libs/proto/src opt: diff --git a/dockers/agent/core/agent/Dockerfile b/dockers/agent/core/agent/Dockerfile index 41d415e47e..f0e82341f3 100644 --- a/dockers/agent/core/agent/Dockerfile +++ b/dockers/agent/core/agent/Dockerfile @@ -71,6 +71,7 @@ RUN --mount=type=bind,target=.,rw \ libomp-dev \ libopenblas-dev \ gfortran \ + pkg-config \ && ldconfig \ && echo "${LANG} UTF-8" > /etc/locale.gen \ && ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime \ diff --git a/dockers/ci/base/Dockerfile b/dockers/ci/base/Dockerfile index 6a25b4682c..a05d3e2593 100644 --- a/dockers/ci/base/Dockerfile +++ b/dockers/ci/base/Dockerfile @@ -80,6 +80,7 @@ RUN --mount=type=bind,target=.,rw \ libomp-dev \ libopenblas-dev \ gfortran \ + pkg-config \ gawk \ gnupg2 \ graphviz \ diff --git a/dockers/dev/Dockerfile b/dockers/dev/Dockerfile index ffcdc07312..8ac6845f43 100644 --- a/dockers/dev/Dockerfile +++ b/dockers/dev/Dockerfile @@ -85,6 +85,7 @@ RUN --mount=type=bind,target=.,rw \ libomp-dev \ libopenblas-dev \ gfortran \ + pkg-config \ gawk \ gnupg2 \ graphviz \ @@ -141,6 +142,7 @@ RUN --mount=type=bind,target=.,rw \ && make telepresence/install \ && make ngt/install \ && make faiss/install \ + && make usearch/install \ && rm -rf ${GOPATH}/src/github.com/${ORG}/${REPO}/* # skipcq: DOK-DL3002 USER root:root diff --git a/hack/docker/gen/main.go b/hack/docker/gen/main.go index 3584cb3e20..bf0d575c28 100644 --- a/hack/docker/gen/main.go +++ b/hack/docker/gen/main.go @@ -351,6 +351,9 @@ var ( faissBuildDeps = []string{ "gfortran", } + rustBuildDeps = []string{ + "pkg-config", + } devContainerDeps = []string{ "gawk", "gnupg2", @@ -532,7 +535,8 @@ func main() { RuntimeImage: "gcr.io/distroless/cc-debian12", ExtraPackages: append(clangBuildDeps, append(ngtBuildDeps, - faissBuildDeps...)...), + append(faissBuildDeps, + rustBuildDeps...)...)...), Preprocess: []string{ ngtPreprocess, faissPreprocess, @@ -649,7 +653,8 @@ func main() { ExtraPackages: append([]string{"npm"}, append(clangBuildDeps, append(ngtBuildDeps, append(faissBuildDeps, - devContainerDeps...)...)...)...), + append(rustBuildDeps, + devContainerDeps...)...)...)...)...), Preprocess: append(ciContainerPreprocess, ngtPreprocess, faissPreprocess, usearchPreprocess), Entrypoints: []string{"/bin/bash"}, }, @@ -664,7 +669,8 @@ func main() { ExtraPackages: append(clangBuildDeps, append(ngtBuildDeps, append(faissBuildDeps, - devContainerDeps...)...)...), + append(rustBuildDeps, + devContainerDeps...)...)...)...), Preprocess: append(devContainerPreprocess, append(ciContainerPreprocess, ngtPreprocess, diff --git a/rust/Cargo.lock b/rust/Cargo.lock index 78ae0a540d..9be8b49b26 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -22,19 +22,112 @@ name = "agent" version = "0.1.0" dependencies = [ "algorithm", + "anyhow", + "cargo", "prost 0.13.2", + "prost-types", "proto", "tokio", "tokio-stream", "tonic 0.12.2", + "tonic-types", +] + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", ] [[package]] name = "algorithm" version = "0.1.0" dependencies = [ + "anyhow", "faiss", "ngt", + "proto", + "tonic 0.12.2", +] + +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "annotate-snippets" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24e35ed54e5ea7997c14ed4c70ba043478db1112e98263b3b035907aa197d991" +dependencies = [ + "anstyle", + "unicode-width", +] + +[[package]] +name = "anstream" +version = "0.6.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" + +[[package]] +name = "anstyle-parse" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", ] [[package]] @@ -43,6 +136,12 @@ version = "1.0.88" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e1496f8fb1fbf272686b8d37f523dab3e4a7443300055e74cdaa449f3114356" +[[package]] +name = "arc-swap" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" + [[package]] name = "async-stream" version = "0.3.5" @@ -204,6 +303,12 @@ dependencies = [ "backtrace", ] +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + [[package]] name = "base64" version = "0.21.7" @@ -216,6 +321,12 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + [[package]] name = "bitflags" version = "1.3.2" @@ -228,6 +339,35 @@ version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +[[package]] +name = "bitmaps" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" +dependencies = [ + "typenum", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bstr" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" +dependencies = [ + "memchr", + "regex-automata 0.4.7", + "serde", +] + [[package]] name = "bumpalo" version = "3.16.0" @@ -246,12 +386,191 @@ version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" +[[package]] +name = "bytesize" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" + +[[package]] +name = "cargo" +version = "0.81.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f24c9dcadcdad2f6fa2553b63d5e9c9700fa6932b75d53f3b11b8aea35ebab99" +dependencies = [ + "annotate-snippets", + "anstream", + "anstyle", + "anyhow", + "base64 0.22.1", + "bytesize", + "cargo-credential", + "cargo-credential-libsecret", + "cargo-credential-macos-keychain", + "cargo-credential-wincred", + "cargo-platform", + "cargo-util", + "cargo-util-schemas", + "clap", + "color-print", + "crates-io", + "curl", + "curl-sys", + "filetime", + "flate2", + "git2", + "git2-curl", + "gix", + "glob", + "hex", + "hmac", + "home", + "http-auth", + "humantime", + "ignore", + "im-rc", + "indexmap 2.5.0", + "itertools 0.12.1", + "jobserver", + "lazycell", + "libc", + "libgit2-sys", + "memchr", + "opener", + "os_info", + "pasetors", + "pathdiff", + "rand", + "regex", + "rusqlite", + "rustfix", + "same-file", + "semver", + "serde", + "serde-untagged", + "serde_ignored", + "serde_json", + "sha1", + "shell-escape", + "supports-hyperlinks", + "supports-unicode", + "tar", + "tempfile", + "time", + "toml", + "toml_edit", + "tracing", + "tracing-chrome", + "tracing-subscriber", + "unicase", + "unicode-width", + "url", + "walkdir", + "windows-sys 0.52.0", +] + +[[package]] +name = "cargo-credential" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a3e7c625670eacbefd48f552588c491eccc79a85a96898af13af7b312d1c4cd" +dependencies = [ + "anyhow", + "libc", + "serde", + "serde_json", + "thiserror", + "time", + "windows-sys 0.52.0", +] + +[[package]] +name = "cargo-credential-libsecret" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "508a82e6202bdb857bed8fabd67a29cdb2e5c3dd3eeb283da3e225da5a5c700d" +dependencies = [ + "anyhow", + "cargo-credential", + "libloading", +] + +[[package]] +name = "cargo-credential-macos-keychain" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4635f2c8a02d08a16f8649672df1999f796c68bcd75784213a6495d8c190cddd" +dependencies = [ + "cargo-credential", + "security-framework", +] + +[[package]] +name = "cargo-credential-wincred" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a86ccaf9c6f49354e832c0eeb44b310ab953871fa2417d2e01ee3d153b310051" +dependencies = [ + "cargo-credential", + "windows-sys 0.52.0", +] + +[[package]] +name = "cargo-platform" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-util" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc680c90073156fb5280c0c0127b779eef1f6292e41f7d6621acba3041e81c7d" +dependencies = [ + "anyhow", + "core-foundation", + "filetime", + "hex", + "ignore", + "jobserver", + "libc", + "miow", + "same-file", + "sha2", + "shell-escape", + "tempfile", + "tracing", + "walkdir", + "windows-sys 0.52.0", +] + +[[package]] +name = "cargo-util-schemas" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34ddc7fc157e3dbbd88f05ef8be7c3ed3ecb05925a3f51f716d6103a607fb7c4" +dependencies = [ + "semver", + "serde", + "serde-untagged", + "serde-value", + "thiserror", + "toml", + "unicode-xid", + "url", +] + [[package]] name = "cc" version = "1.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b62ac837cdb5cb22e10a256099b4fc502b1dfe560cb282963a974d7abd80e476" dependencies = [ + "jobserver", + "libc", "shlex", ] @@ -261,6 +580,40 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "clap" +version = "4.5.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac" +dependencies = [ + "clap_builder", +] + +[[package]] +name = "clap_builder" +version = "4.5.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cf2dd12af7a047ad9d6da2b6b249759a22a7abc0f474c1dae1777afa4b21a73" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", + "terminal_size", +] + +[[package]] +name = "clap_lex" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" + +[[package]] +name = "clru" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbd0f76e066e64fdc5631e3bb46381254deab9ef1158292f27c8c57e3bf3fe59" + [[package]] name = "codespan-reporting" version = "0.11.1" @@ -271,6 +624,39 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "color-print" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee543c60ff3888934877a5671f45494dd27ed4ba25c6670b9a7576b7ed7a8c0" +dependencies = [ + "color-print-proc-macro", +] + +[[package]] +name = "color-print-proc-macro" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ff1a80c5f3cb1ca7c06ffdd71b6a6dd6d8f896c42141fbd43f50ed28dcdb93" +dependencies = [ + "nom", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "colorchoice" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + [[package]] name = "core-foundation" version = "0.9.4" @@ -288,187 +674,1294 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] -name = "cxx" -version = "1.0.128" +name = "cpufeatures" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54ccead7d199d584d139148b04b4a368d1ec7556a1d9ea2548febb1b9d49f9a4" +checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" dependencies = [ - "cc", - "cxxbridge-flags", - "cxxbridge-macro", - "link-cplusplus", + "libc", ] [[package]] -name = "cxx-build" -version = "1.0.128" +name = "crates-io" +version = "0.40.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c77953e99f01508f89f55c494bfa867171ef3a6c8cea03d26975368f2121a5c1" +checksum = "f0f4884a8a380811c8ef088e7caeb68caeb665ffdb91f7276069e3c7828f168a" dependencies = [ - "cc", - "codespan-reporting", - "once_cell", - "proc-macro2", - "quote", - "scratch", - "syn", + "curl", + "percent-encoding", + "serde", + "serde_json", + "thiserror", + "url", ] [[package]] -name = "cxxbridge-flags" -version = "1.0.128" +name = "crc32fast" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65777e06cc48f0cb0152024c77d6cf9e4bdb4408e7b48bea993d42fa0f5b02b6" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] [[package]] -name = "cxxbridge-macro" -version = "1.0.128" +name = "crossbeam-channel" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98532a60dedaebc4848cb2cba5023337cc9ea3af16a5b062633fabfd9f18fb60" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" dependencies = [ - "proc-macro2", - "quote", - "syn", + "crossbeam-utils", ] [[package]] -name = "either" -version = "1.13.0" +name = "crossbeam-deque" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] [[package]] -name = "encoding_rs" -version = "0.8.34" +name = "crossbeam-epoch" +version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "cfg-if", + "crossbeam-utils", ] [[package]] -name = "equivalent" -version = "1.0.1" +name = "crossbeam-utils" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] -name = "errno" -version = "0.3.9" +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "ct-codecs" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "026ac6ceace6298d2c557ef5ed798894962296469ec7842288ea64674201a2d1" + +[[package]] +name = "curl" +version = "0.4.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e2161dd6eba090ff1594084e95fd67aeccf04382ffea77999ea94ed42ec67b6" +dependencies = [ + "curl-sys", + "libc", + "openssl-probe", + "openssl-sys", + "schannel", + "socket2", + "windows-sys 0.52.0", +] + +[[package]] +name = "curl-sys" +version = "0.4.75+curl-8.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a4fd752d337342e4314717c0d9b6586b059a120c80029ebe4d49b11fec7875e" +dependencies = [ + "cc", + "libc", + "libnghttp2-sys", + "libz-sys", + "openssl-sys", + "pkg-config", + "vcpkg", + "windows-sys 0.52.0", +] + +[[package]] +name = "cxx" +version = "1.0.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54ccead7d199d584d139148b04b4a368d1ec7556a1d9ea2548febb1b9d49f9a4" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c77953e99f01508f89f55c494bfa867171ef3a6c8cea03d26975368f2121a5c1" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2", + "quote", + "scratch", + "syn", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65777e06cc48f0cb0152024c77d6cf9e4bdb4408e7b48bea993d42fa0f5b02b6" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98532a60dedaebc4848cb2cba5023337cc9ea3af16a5b062633fabfd9f18fb60" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "dbus" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b" +dependencies = [ + "libc", + "libdbus-sys", + "winapi", +] + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "pem-rfc7468", + "zeroize", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "ed25519-compact" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9b3460f44bea8cd47f45a0c70892f1eff856d97cd55358b2f73f663789f6190" +dependencies = [ + "getrandom", +] + +[[package]] +name = "either" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest", + "ff", + "generic-array", + "group", + "hkdf", + "pem-rfc7468", + "pkcs8", + "rand_core", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "encoding_rs" +version = "0.8.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "erased-serde" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24e2389d65ab4fab27dc2a5de7b191e1f6617d1f1c8855c0dc569c94a4cbb18d" +dependencies = [ + "serde", + "typeid", +] + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "faiss" +version = "0.1.0" + +[[package]] +name = "fallible-iterator" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" + +[[package]] +name = "fallible-streaming-iterator" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" + +[[package]] +name = "faster-hex" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183" + +[[package]] +name = "fastrand" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "rand_core", + "subtle", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "filetime" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +dependencies = [ + "cfg-if", + "libc", + "libredox", + "windows-sys 0.59.0", +] + +[[package]] +name = "flate2" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" +dependencies = [ + "crc32fast", + "libz-sys", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "gimli" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64" + +[[package]] +name = "git2" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "232e6a7bfe35766bf715e55a88b39a700596c0ccfd88cd3680b4cdb40d66ef70" +dependencies = [ + "bitflags 2.6.0", + "libc", + "libgit2-sys", + "log", + "openssl-probe", + "openssl-sys", + "url", +] + +[[package]] +name = "git2-curl" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78e26b61608c573ffd26fc79061a823aa5147449a1afe1f61679a21e2031f7c3" +dependencies = [ + "curl", + "git2", + "log", + "url", +] + +[[package]] +name = "gix" +version = "0.63.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "984c5018adfa7a4536ade67990b3ebc6e11ab57b3d6cd9968de0947ca99b4b06" +dependencies = [ + "gix-actor", + "gix-attributes", + "gix-command", + "gix-commitgraph", + "gix-config", + "gix-credentials", + "gix-date 0.8.7", + "gix-diff", + "gix-dir", + "gix-discover", + "gix-features", + "gix-filter", + "gix-fs", + "gix-glob", + "gix-hash", + "gix-hashtable", + "gix-ignore", + "gix-index", + "gix-lock", + "gix-macros", + "gix-negotiate", + "gix-object", + "gix-odb", + "gix-pack", + "gix-path", + "gix-pathspec", + "gix-prompt", + "gix-protocol", + "gix-ref", + "gix-refspec", + "gix-revision", + "gix-revwalk", + "gix-sec", + "gix-submodule", + "gix-tempfile", + "gix-trace", + "gix-transport", + "gix-traverse", + "gix-url", + "gix-utils", + "gix-validate", + "gix-worktree", + "once_cell", + "parking_lot", + "prodash", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-actor" +version = "0.31.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0e454357e34b833cc3a00b6efbbd3dd4d18b24b9fb0c023876ec2645e8aa3f2" +dependencies = [ + "bstr", + "gix-date 0.8.7", + "gix-utils", + "itoa", + "thiserror", + "winnow", +] + +[[package]] +name = "gix-attributes" +version = "0.22.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebccbf25aa4a973dd352564a9000af69edca90623e8a16dad9cbc03713131311" +dependencies = [ + "bstr", + "gix-glob", + "gix-path", + "gix-quote", + "gix-trace", + "kstring", + "smallvec", + "thiserror", + "unicode-bom", +] + +[[package]] +name = "gix-bitmap" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a371db66cbd4e13f0ed9dc4c0fea712d7276805fccc877f77e96374d317e87ae" +dependencies = [ + "thiserror", +] + +[[package]] +name = "gix-chunk" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45c8751169961ba7640b513c3b24af61aa962c967aaf04116734975cd5af0c52" +dependencies = [ + "thiserror", +] + +[[package]] +name = "gix-command" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff2e692b36bbcf09286c70803006ca3fd56551a311de450be317a0ab8ea92e7" +dependencies = [ + "bstr", + "gix-path", + "gix-trace", + "shell-words", +] + +[[package]] +name = "gix-commitgraph" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "133b06f67f565836ec0c473e2116a60fb74f80b6435e21d88013ac0e3c60fc78" +dependencies = [ + "bstr", + "gix-chunk", + "gix-features", + "gix-hash", + "memmap2", + "thiserror", +] + +[[package]] +name = "gix-config" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fafe42957e11d98e354a66b6bd70aeea00faf2f62dd11164188224a507c840" +dependencies = [ + "bstr", + "gix-config-value", + "gix-features", + "gix-glob", + "gix-path", + "gix-ref", + "gix-sec", + "memchr", + "once_cell", + "smallvec", + "thiserror", + "unicode-bom", + "winnow", +] + +[[package]] +name = "gix-config-value" +version = "0.14.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03f76169faa0dec598eac60f83d7fcdd739ec16596eca8fb144c88973dbe6f8c" +dependencies = [ + "bitflags 2.6.0", + "bstr", + "gix-path", + "libc", + "thiserror", +] + +[[package]] +name = "gix-credentials" +version = "0.24.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce391d305968782f1ae301c4a3d42c5701df7ff1d8bc03740300f6fd12bce78" +dependencies = [ + "bstr", + "gix-command", + "gix-config-value", + "gix-path", + "gix-prompt", + "gix-sec", + "gix-trace", + "gix-url", + "thiserror", +] + +[[package]] +name = "gix-date" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eed6931f21491ee0aeb922751bd7ec97b4b2fe8fbfedcb678e2a2dce5f3b8c0" +dependencies = [ + "bstr", + "itoa", + "thiserror", + "time", +] + +[[package]] +name = "gix-date" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35c84b7af01e68daf7a6bb8bb909c1ff5edb3ce4326f1f43063a5a96d3c3c8a5" +dependencies = [ + "bstr", + "itoa", + "jiff", + "thiserror", +] + +[[package]] +name = "gix-diff" +version = "0.44.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1996d5c8a305b59709467d80617c9fde48d9d75fd1f4179ea970912630886c9d" +dependencies = [ + "bstr", + "gix-hash", + "gix-object", + "thiserror", +] + +[[package]] +name = "gix-dir" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60c99f8c545abd63abe541d20ab6cda347de406c0a3f1c80aadc12d9b0e94974" +dependencies = [ + "bstr", + "gix-discover", + "gix-fs", + "gix-ignore", + "gix-index", + "gix-object", + "gix-path", + "gix-pathspec", + "gix-trace", + "gix-utils", + "gix-worktree", + "thiserror", +] + +[[package]] +name = "gix-discover" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc27c699b63da66b50d50c00668bc0b7e90c3a382ef302865e891559935f3dbf" +dependencies = [ + "bstr", + "dunce", + "gix-fs", + "gix-hash", + "gix-path", + "gix-ref", + "gix-sec", + "thiserror", +] + +[[package]] +name = "gix-features" +version = "0.38.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac7045ac9fe5f9c727f38799d002a7ed3583cd777e3322a7c4b43e3cf437dc69" +dependencies = [ + "bytes", + "crc32fast", + "crossbeam-channel", + "flate2", + "gix-hash", + "gix-trace", + "gix-utils", + "libc", + "once_cell", + "parking_lot", + "prodash", + "sha1_smol", + "thiserror", + "walkdir", +] + +[[package]] +name = "gix-filter" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6547738da28275f4dff4e9f3a0f28509f53f94dd6bd822733c91cb306bca61a" +dependencies = [ + "bstr", + "encoding_rs", + "gix-attributes", + "gix-command", + "gix-hash", + "gix-object", + "gix-packetline-blocking", + "gix-path", + "gix-quote", + "gix-trace", + "gix-utils", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-fs" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2bfe6249cfea6d0c0e0990d5226a4cb36f030444ba9e35e0639275db8f98575" +dependencies = [ + "fastrand", + "gix-features", + "gix-utils", +] + +[[package]] +name = "gix-glob" +version = "0.16.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74908b4bbc0a0a40852737e5d7889f676f081e340d5451a16e5b4c50d592f111" +dependencies = [ + "bitflags 2.6.0", + "bstr", + "gix-features", + "gix-path", +] + +[[package]] +name = "gix-hash" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93d7df7366121b5018f947a04d37f034717e113dcf9ccd85c34b58e57a74d5e" +dependencies = [ + "faster-hex", + "thiserror", +] + +[[package]] +name = "gix-hashtable" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ddf80e16f3c19ac06ce415a38b8591993d3f73aede049cb561becb5b3a8e242" +dependencies = [ + "gix-hash", + "hashbrown 0.14.5", + "parking_lot", +] + +[[package]] +name = "gix-ignore" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e447cd96598460f5906a0f6c75e950a39f98c2705fc755ad2f2020c9e937fab7" +dependencies = [ + "bstr", + "gix-glob", + "gix-path", + "gix-trace", + "unicode-bom", +] + +[[package]] +name = "gix-index" +version = "0.33.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a9a44eb55bd84bb48f8a44980e951968ced21e171b22d115d1cdcef82a7d73f" +dependencies = [ + "bitflags 2.6.0", + "bstr", + "filetime", + "fnv", + "gix-bitmap", + "gix-features", + "gix-fs", + "gix-hash", + "gix-lock", + "gix-object", + "gix-traverse", + "gix-utils", + "gix-validate", + "hashbrown 0.14.5", + "itoa", + "libc", + "memmap2", + "rustix", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-lock" +version = "14.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bc7fe297f1f4614774989c00ec8b1add59571dc9b024b4c00acb7dedd4e19d" +dependencies = [ + "gix-tempfile", + "gix-utils", + "thiserror", +] + +[[package]] +name = "gix-macros" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "999ce923619f88194171a67fb3e6d613653b8d4d6078b529b15a765da0edcc17" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "gix-negotiate" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ec879fb6307bb63519ba89be0024c6f61b4b9d61f1a91fd2ce572d89fe9c224" +dependencies = [ + "bitflags 2.6.0", + "gix-commitgraph", + "gix-date 0.8.7", + "gix-hash", + "gix-object", + "gix-revwalk", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-object" +version = "0.42.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25da2f46b4e7c2fa7b413ce4dffb87f69eaf89c2057e386491f4c55cadbfe386" +dependencies = [ + "bstr", + "gix-actor", + "gix-date 0.8.7", + "gix-features", + "gix-hash", + "gix-utils", + "gix-validate", + "itoa", + "smallvec", + "thiserror", + "winnow", +] + +[[package]] +name = "gix-odb" +version = "0.61.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20d384fe541d93d8a3bb7d5d5ef210780d6df4f50c4e684ccba32665a5e3bc9b" +dependencies = [ + "arc-swap", + "gix-date 0.8.7", + "gix-features", + "gix-fs", + "gix-hash", + "gix-object", + "gix-pack", + "gix-path", + "gix-quote", + "parking_lot", + "tempfile", + "thiserror", +] + +[[package]] +name = "gix-pack" +version = "0.51.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e0594491fffe55df94ba1c111a6566b7f56b3f8d2e1efc750e77d572f5f5229" +dependencies = [ + "clru", + "gix-chunk", + "gix-features", + "gix-hash", + "gix-hashtable", + "gix-object", + "gix-path", + "gix-tempfile", + "memmap2", + "parking_lot", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-packetline" +version = "0.17.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c43ef4d5fe2fa222c606731c8bdbf4481413ee4ef46d61340ec39e4df4c5e49" +dependencies = [ + "bstr", + "faster-hex", + "gix-trace", + "thiserror", +] + +[[package]] +name = "gix-packetline-blocking" +version = "0.17.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9802304baa798dd6f5ff8008a2b6516d54b74a69ca2d3a2b9e2d6c3b5556b40" +dependencies = [ + "bstr", + "faster-hex", + "gix-trace", + "thiserror", +] + +[[package]] +name = "gix-path" +version = "0.10.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebfc4febd088abdcbc9f1246896e57e37b7a34f6909840045a1767c6dafac7af" +dependencies = [ + "bstr", + "gix-trace", + "home", + "once_cell", + "thiserror", +] + +[[package]] +name = "gix-pathspec" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d23bf239532b4414d0e63b8ab3a65481881f7237ed9647bb10c1e3cc54c5ceb" +dependencies = [ + "bitflags 2.6.0", + "bstr", + "gix-attributes", + "gix-config-value", + "gix-glob", + "gix-path", + "thiserror", +] + +[[package]] +name = "gix-prompt" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74fde865cdb46b30d8dad1293385d9bcf998d3a39cbf41bee67d0dab026fe6b1" +dependencies = [ + "gix-command", + "gix-config-value", + "parking_lot", + "rustix", + "thiserror", +] + +[[package]] +name = "gix-protocol" +version = "0.45.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc43a1006f01b5efee22a003928c9eb83dde2f52779ded9d4c0732ad93164e3e" +dependencies = [ + "bstr", + "gix-credentials", + "gix-date 0.9.0", + "gix-features", + "gix-hash", + "gix-transport", + "gix-utils", + "maybe-async", + "thiserror", + "winnow", +] + +[[package]] +name = "gix-quote" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbff4f9b9ea3fa7a25a70ee62f545143abef624ac6aa5884344e70c8b0a1d9ff" +dependencies = [ + "bstr", + "gix-utils", + "thiserror", +] + +[[package]] +name = "gix-ref" +version = "0.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "3394a2997e5bc6b22ebc1e1a87b41eeefbcfcff3dbfa7c4bd73cb0ac8f1f3e2e" dependencies = [ - "libc", - "windows-sys 0.52.0", + "gix-actor", + "gix-date 0.8.7", + "gix-features", + "gix-fs", + "gix-hash", + "gix-lock", + "gix-object", + "gix-path", + "gix-tempfile", + "gix-utils", + "gix-validate", + "memmap2", + "thiserror", + "winnow", ] [[package]] -name = "faiss" -version = "0.1.0" +name = "gix-refspec" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6868f8cd2e62555d1f7c78b784bece43ace40dd2a462daf3b588d5416e603f37" +dependencies = [ + "bstr", + "gix-hash", + "gix-revision", + "gix-validate", + "smallvec", + "thiserror", +] [[package]] -name = "fnv" -version = "1.0.7" +name = "gix-revision" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +checksum = "01b13e43c2118c4b0537ddac7d0821ae0dfa90b7b8dbf20c711e153fb749adce" +dependencies = [ + "bstr", + "gix-date 0.8.7", + "gix-hash", + "gix-hashtable", + "gix-object", + "gix-revwalk", + "gix-trace", + "thiserror", +] [[package]] -name = "form_urlencoded" -version = "1.2.1" +name = "gix-revwalk" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "1b030ccaab71af141f537e0225f19b9e74f25fefdba0372246b844491cab43e0" dependencies = [ - "percent-encoding", + "gix-commitgraph", + "gix-date 0.8.7", + "gix-hash", + "gix-hashtable", + "gix-object", + "smallvec", + "thiserror", ] [[package]] -name = "futures-channel" -version = "0.3.30" +name = "gix-sec" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "0fe4d52f30a737bbece5276fab5d3a8b276dc2650df963e293d0673be34e7a5f" dependencies = [ - "futures-core", + "bitflags 2.6.0", + "gix-path", + "libc", + "windows-sys 0.52.0", ] [[package]] -name = "futures-core" -version = "0.3.30" +name = "gix-submodule" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "921cd49924ac14b6611b22e5fb7bbba74d8780dc7ad26153304b64d1272460ac" +dependencies = [ + "bstr", + "gix-config", + "gix-path", + "gix-pathspec", + "gix-refspec", + "gix-url", + "thiserror", +] [[package]] -name = "futures-executor" -version = "0.3.30" +name = "gix-tempfile" +version = "14.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "046b4927969fa816a150a0cda2e62c80016fe11fb3c3184e4dddf4e542f108aa" dependencies = [ - "futures-core", - "futures-task", - "futures-util", + "gix-fs", + "libc", + "once_cell", + "parking_lot", + "tempfile", ] [[package]] -name = "futures-io" -version = "0.3.30" +name = "gix-trace" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "6cae0e8661c3ff92688ce1c8b8058b3efb312aba9492bbe93661a21705ab431b" [[package]] -name = "futures-macro" -version = "0.3.30" +name = "gix-transport" +version = "0.42.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "421dcccab01b41a15d97b226ad97a8f9262295044e34fbd37b10e493b0a6481f" dependencies = [ - "proc-macro2", - "quote", - "syn", + "base64 0.22.1", + "bstr", + "curl", + "gix-command", + "gix-credentials", + "gix-features", + "gix-packetline", + "gix-quote", + "gix-sec", + "gix-url", + "thiserror", ] [[package]] -name = "futures-sink" -version = "0.3.30" +name = "gix-traverse" +version = "0.39.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e499a18c511e71cf4a20413b743b9f5bcf64b3d9e81e9c3c6cd399eae55a8840" +dependencies = [ + "bitflags 2.6.0", + "gix-commitgraph", + "gix-date 0.8.7", + "gix-hash", + "gix-hashtable", + "gix-object", + "gix-revwalk", + "smallvec", + "thiserror", +] [[package]] -name = "futures-task" -version = "0.3.30" +name = "gix-url" +version = "0.27.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "fd280c5e84fb22e128ed2a053a0daeacb6379469be6a85e3d518a0636e160c89" +dependencies = [ + "bstr", + "gix-features", + "gix-path", + "home", + "thiserror", + "url", +] [[package]] -name = "futures-util" -version = "0.3.30" +name = "gix-utils" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "35192df7fd0fa112263bad8021e2df7167df4cc2a6e6d15892e1e55621d3d4dc" dependencies = [ - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", + "bstr", + "fastrand", + "unicode-normalization", ] [[package]] -name = "getrandom" -version = "0.2.15" +name = "gix-validate" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "82c27dd34a49b1addf193c92070bcbf3beaf6e10f16a78544de6372e146a0acf" dependencies = [ - "cfg-if", - "libc", - "wasi", + "bstr", + "thiserror", ] [[package]] -name = "gimli" -version = "0.31.0" +name = "gix-worktree" +version = "0.34.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64" +checksum = "26f7326ebe0b9172220694ea69d344c536009a9b98fb0f9de092c440f3efe7a6" +dependencies = [ + "bstr", + "gix-attributes", + "gix-features", + "gix-fs", + "gix-glob", + "gix-hash", + "gix-ignore", + "gix-index", + "gix-object", + "gix-path", + "gix-validate", +] [[package]] name = "glob" @@ -476,6 +1969,30 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +[[package]] +name = "globset" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15f1ce686646e7f1e19bf7d5533fe443a45dbfb990e00629110797578b42fb19" +dependencies = [ + "aho-corasick", + "bstr", + "log", + "regex-automata 0.4.7", + "regex-syntax 0.8.4", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core", + "subtle", +] + [[package]] name = "h2" version = "0.3.26" @@ -525,6 +2042,19 @@ name = "hashbrown" version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", +] + +[[package]] +name = "hashlink" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" +dependencies = [ + "hashbrown 0.14.5", +] [[package]] name = "hermit-abi" @@ -532,6 +2062,39 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + [[package]] name = "http" version = "0.2.12" @@ -554,6 +2117,15 @@ dependencies = [ "itoa", ] +[[package]] +name = "http-auth" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "150fa4a9462ef926824cf4519c84ed652ca8f4fbae34cb8af045b5cbcaf98822" +dependencies = [ + "memchr", +] + [[package]] name = "http-body" version = "0.4.6" @@ -600,6 +2172,12 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + [[package]] name = "hyper" version = "0.14.30" @@ -700,6 +2278,36 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "ignore" +version = "0.4.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b" +dependencies = [ + "crossbeam-deque", + "globset", + "log", + "memchr", + "regex-automata 0.4.7", + "same-file", + "walkdir", + "winapi-util", +] + +[[package]] +name = "im-rc" +version = "15.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1955a75fa080c677d3972822ec4bad316169ab1cfc6c257a942c2265dbe5fe" +dependencies = [ + "bitmaps", + "rand_core", + "rand_xoshiro", + "sized-chunks", + "typenum", + "version_check", +] + [[package]] name = "indexmap" version = "1.9.3" @@ -732,6 +2340,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45" +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + [[package]] name = "itertools" version = "0.12.1" @@ -756,6 +2370,40 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +[[package]] +name = "jiff" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a45489186a6123c128fdf6016183fcfab7113e1820eb813127e036e287233fb" +dependencies = [ + "jiff-tzdb-platform", + "windows-sys 0.59.0", +] + +[[package]] +name = "jiff-tzdb" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91335e575850c5c4c673b9bd467b0e025f164ca59d0564f69d0c2ee0ffad4653" + +[[package]] +name = "jiff-tzdb-platform" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9835f0060a626fe59f160437bc725491a6af23133ea906500027d1bd2f8f4329" +dependencies = [ + "jiff-tzdb", +] + +[[package]] +name = "jobserver" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] + [[package]] name = "js-sys" version = "0.3.70" @@ -765,18 +2413,125 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "kstring" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "558bf9508a558512042d3095138b1f7b8fe90c5467d94f9f1da28b3731c5dbd1" +dependencies = [ + "static_assertions", +] + [[package]] name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + [[package]] name = "libc" version = "0.2.158" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" +[[package]] +name = "libdbus-sys" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06085512b750d640299b79be4bad3d2fa90a9c00b1fd9e1b46364f66f0485c72" +dependencies = [ + "cc", + "pkg-config", +] + +[[package]] +name = "libgit2-sys" +version = "0.16.2+1.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8" +dependencies = [ + "cc", + "libc", + "libssh2-sys", + "libz-sys", + "openssl-sys", + "pkg-config", +] + +[[package]] +name = "libloading" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" +dependencies = [ + "cfg-if", + "windows-targets 0.52.6", +] + +[[package]] +name = "libnghttp2-sys" +version = "0.1.10+1.61.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "959c25552127d2e1fa72f0e52548ec04fc386e827ba71a7bd01db46a447dc135" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.6.0", + "libc", + "redox_syscall", +] + +[[package]] +name = "libsqlite3-sys" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c10584274047cb335c23d3e61bcef8e323adae7c5c8c760540f73610177fc3f" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "libssh2-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee" +dependencies = [ + "cc", + "libc", + "libz-sys", + "openssl-sys", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "libz-sys" +version = "1.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + [[package]] name = "link-cplusplus" version = "1.0.9" @@ -808,18 +2563,47 @@ version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + [[package]] name = "matchit" version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" +[[package]] +name = "maybe-async" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "memchr" version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +[[package]] +name = "memmap2" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" +dependencies = [ + "libc", +] + [[package]] name = "meta" version = "0.1.0" @@ -866,6 +2650,12 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "miniz_oxide" version = "0.8.0" @@ -887,6 +2677,15 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "miow" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "359f76430b20a79f9e20e115b3428614e654f04fab314482fc0fda0ebd3c6044" +dependencies = [ + "windows-sys 0.48.0", +] + [[package]] name = "ngt" version = "0.1.0" @@ -898,6 +2697,41 @@ dependencies = [ "rand", ] +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "normpath" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8911957c4b1549ac0dc74e30db9c8b0e66ddcd6d7acc33098f4c63a64a6d7ed" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-traits" version = "0.2.19" @@ -907,6 +2741,15 @@ dependencies = [ "autocfg", ] +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ + "libc", +] + [[package]] name = "object" version = "0.36.4" @@ -938,6 +2781,36 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +[[package]] +name = "opener" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0812e5e4df08da354c851a3376fead46db31c2214f849d3de356d774d057681" +dependencies = [ + "bstr", + "dbus", + "normpath", + "windows-sys 0.59.0", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + [[package]] name = "opentelemetry" version = "0.23.0" @@ -1017,7 +2890,7 @@ dependencies = [ "lazy_static", "once_cell", "opentelemetry", - "ordered-float", + "ordered-float 4.2.2", "percent-encoding", "rand", "serde_json", @@ -1026,6 +2899,15 @@ dependencies = [ "tokio-stream", ] +[[package]] +name = "ordered-float" +version = "2.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" +dependencies = [ + "num-traits", +] + [[package]] name = "ordered-float" version = "4.2.2" @@ -1035,12 +2917,51 @@ dependencies = [ "num-traits", ] +[[package]] +name = "orion" +version = "0.17.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97ab5415cf60cd271259e576f2ddee7a5f9fed42659035224c01af766943fad3" +dependencies = [ + "fiat-crypto", + "subtle", + "zeroize", +] + +[[package]] +name = "os_info" +version = "3.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae99c7fa6dd38c7cafe1ec085e804f8f555a2f8659b0dbe03f1f9963a9b51092" +dependencies = [ + "log", + "windows-sys 0.52.0", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + [[package]] name = "owo-colors" version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb37767f6569cd834a413442455e0f066d0d522de8630436e2a1761d9726ba56" +[[package]] +name = "p384" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2", +] + [[package]] name = "parking_lot" version = "0.12.3" @@ -1064,12 +2985,48 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "pasetors" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b36d47c66f2230dd1b7143d9afb2b4891879020210eddf2ccb624e529b96dba" +dependencies = [ + "ct-codecs", + "ed25519-compact", + "getrandom", + "orion", + "p384", + "rand_core", + "regex", + "serde", + "serde_json", + "sha2", + "subtle", + "time", + "zeroize", +] + [[package]] name = "paste" version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "pathdiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" + +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + [[package]] name = "percent-encoding" version = "2.3.1" @@ -1108,6 +3065,28 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "ppv-lite86" version = "0.2.20" @@ -1117,6 +3096,15 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve", +] + [[package]] name = "proc-macro2" version = "1.0.86" @@ -1126,6 +3114,15 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "prodash" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "744a264d26b88a6a7e37cbad97953fa233b94d585236310bcbc88474b4092d79" +dependencies = [ + "parking_lot", +] + [[package]] name = "prost" version = "0.12.6" @@ -1231,6 +3228,15 @@ dependencies = [ "getrandom", ] +[[package]] +name = "rand_xoshiro" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" +dependencies = [ + "rand_core", +] + [[package]] name = "redox_syscall" version = "0.5.4" @@ -1240,6 +3246,50 @@ dependencies = [ "bitflags 2.6.0", ] +[[package]] +name = "regex" +version = "1.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.7", + "regex-syntax 0.8.4", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.4", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" + [[package]] name = "reqwest" version = "0.11.27" @@ -1276,6 +3326,30 @@ dependencies = [ "winreg", ] +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "rusqlite" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b838eba278d213a8beaf485bd313fd580ca4505a00d5871caeb1457c55322cae" +dependencies = [ + "bitflags 2.6.0", + "fallible-iterator", + "fallible-streaming-iterator", + "hashlink", + "libsqlite3-sys", + "smallvec", +] + [[package]] name = "rustc-demangle" version = "0.1.24" @@ -1283,49 +3357,146 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] -name = "rustix" -version = "0.38.37" +name = "rustfix" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70f5b7fc8060f4f8373f9381a630304b42e1183535d9beb1d3f596b236c9106a" +dependencies = [ + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "rustix" +version = "0.38.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" +dependencies = [ + "bitflags 2.6.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustversion" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scratch" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "security-framework" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ "bitflags 2.6.0", - "errno", + "core-foundation", + "core-foundation-sys", "libc", - "linux-raw-sys", - "windows-sys 0.52.0", + "security-framework-sys", ] [[package]] -name = "rustversion" -version = "1.0.17" +name = "security-framework-sys" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +dependencies = [ + "core-foundation-sys", + "libc", +] [[package]] -name = "ryu" -version = "1.0.18" +name = "semver" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +dependencies = [ + "serde", +] [[package]] -name = "scopeguard" -version = "1.2.0" +name = "serde" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +dependencies = [ + "serde_derive", +] [[package]] -name = "scratch" -version = "1.0.7" +name = "serde-untagged" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" +checksum = "2676ba99bd82f75cae5cbd2c8eda6fa0b8760f18978ea840e980dd5567b5c5b6" +dependencies = [ + "erased-serde", + "serde", + "typeid", +] [[package]] -name = "serde" -version = "1.0.210" +name = "serde-value" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" dependencies = [ - "serde_derive", + "ordered-float 2.10.1", + "serde", ] [[package]] @@ -1339,6 +3510,15 @@ dependencies = [ "syn", ] +[[package]] +name = "serde_ignored" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8e319a36d1b52126a0d608f24e93b2d81297091818cd70625fcf50a15d84ddf" +dependencies = [ + "serde", +] + [[package]] name = "serde_json" version = "1.0.128" @@ -1351,6 +3531,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" +dependencies = [ + "serde", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -1363,6 +3552,55 @@ dependencies = [ "serde", ] +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha1_smol" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shell-escape" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f" + +[[package]] +name = "shell-words" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" + [[package]] name = "shlex" version = "1.3.0" @@ -1378,6 +3616,26 @@ dependencies = [ "libc", ] +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core", +] + +[[package]] +name = "sized-chunks" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" +dependencies = [ + "bitmaps", + "typenum", +] + [[package]] name = "slab" version = "0.4.9" @@ -1409,6 +3667,34 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + [[package]] name = "supports-color" version = "3.0.1" @@ -1474,6 +3760,29 @@ dependencies = [ "libc", ] +[[package]] +name = "tar" +version = "0.4.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb797dad5fb5b76fcf519e702f4a589483b5ef06567f160c392832c1f5e44909" +dependencies = [ + "filetime", + "libc", +] + +[[package]] +name = "tempfile" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +dependencies = [ + "cfg-if", + "fastrand", + "once_cell", + "rustix", + "windows-sys 0.59.0", +] + [[package]] name = "termcolor" version = "1.4.1" @@ -1524,6 +3833,49 @@ dependencies = [ "syn", ] +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "libc", + "num-conv", + "num_threads", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + [[package]] name = "tinyvec" version = "1.8.0" @@ -1603,6 +3955,40 @@ dependencies = [ "tokio", ] +[[package]] +name = "toml" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" +dependencies = [ + "indexmap 2.5.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + [[package]] name = "tonic" version = "0.11.0" @@ -1725,6 +4111,17 @@ dependencies = [ "syn", ] +[[package]] +name = "tracing-chrome" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf0a738ed5d6450a9fb96e86a23ad808de2b727fd1394585da5cdd6788ffe724" +dependencies = [ + "serde_json", + "tracing-core", + "tracing-subscriber", +] + [[package]] name = "tracing-core" version = "0.1.32" @@ -1732,6 +4129,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", ] [[package]] @@ -1740,12 +4167,39 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "typeid" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e" + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "unicase" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" +dependencies = [ + "version_check", +] + [[package]] name = "unicode-bidi" version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +[[package]] +name = "unicode-bom" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217" + [[package]] name = "unicode-ident" version = "1.0.13" @@ -1773,6 +4227,12 @@ version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" +[[package]] +name = "unicode-xid" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a" + [[package]] name = "url" version = "2.5.2" @@ -1784,6 +4244,40 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + [[package]] name = "want" version = "0.3.1" @@ -1876,6 +4370,22 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + [[package]] name = "winapi-util" version = "0.1.9" @@ -1885,6 +4395,12 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + [[package]] name = "windows-sys" version = "0.48.0" @@ -2033,6 +4549,15 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "winnow" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.50.0" @@ -2063,3 +4588,9 @@ dependencies = [ "quote", "syn", ] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" diff --git a/rust/bin/agent/Cargo.toml b/rust/bin/agent/Cargo.toml index 7e11dd94d6..42359f5209 100644 --- a/rust/bin/agent/Cargo.toml +++ b/rust/bin/agent/Cargo.toml @@ -22,8 +22,12 @@ edition = "2021" [dependencies] algorithm = { version = "0.1.0", path = "../../libs/algorithm" } -prost = "0.13.1" +anyhow = "1.0.88" +cargo = "0.81.0" +prost = "0.13.2" +prost-types = "0.13.2" proto = { version = "0.1.0", path = "../../libs/proto" } -tokio = { version = "1.39.3", features = ["full"] } -tokio-stream = { version = "0.1.15", features = ["full"] } -tonic = "0.12.1" +tokio = { version = "1.40.0", features = ["full"] } +tokio-stream = { version = "0.1.16", features = ["full"] } +tonic = "0.12.2" +tonic-types = "0.12.2" diff --git a/rust/bin/agent/src/handler.rs b/rust/bin/agent/src/handler.rs index 7baa1b6237..1165799dd4 100644 --- a/rust/bin/agent/src/handler.rs +++ b/rust/bin/agent/src/handler.rs @@ -14,14 +14,29 @@ // limitations under the License. // mod common; -mod index; -mod insert; -mod remove; -mod search; -mod update; -mod upsert; +pub mod index; +pub mod insert; +pub mod remove; +pub mod search; +pub mod update; +pub mod upsert; -#[derive(Default, Debug)] pub struct Agent { - + s: Box, + name: String, + ip: String, + resource_type: String, + api_name: String, +} + +impl Agent { + pub fn new(s: impl algorithm::ANN + 'static, name: &str, ip: &str, resource_type: &str, api_name: &str) -> Self { + Self { + s: Box::new(s), + name: name.to_string(), + ip: ip.to_string(), + resource_type: resource_type.to_string(), + api_name: api_name.to_string(), + } + } } diff --git a/rust/bin/agent/src/handler/index.rs b/rust/bin/agent/src/handler/index.rs index fa6b39d6a6..df535b82fc 100644 --- a/rust/bin/agent/src/handler/index.rs +++ b/rust/bin/agent/src/handler/index.rs @@ -23,14 +23,14 @@ use proto::{ impl agent_server::Agent for super::Agent { async fn create_index( &self, - request: tonic::Request, + _request: tonic::Request, ) -> std::result::Result, tonic::Status> { todo!() } async fn save_index( &self, - request: tonic::Request, + _request: tonic::Request, ) -> std::result::Result, tonic::Status> { todo!() } @@ -38,7 +38,7 @@ impl agent_server::Agent for super::Agent { #[doc = " Represent the creating and saving index RPC.\n"] async fn create_and_save_index( &self, - request: tonic::Request, + _request: tonic::Request, ) -> std::result::Result, tonic::Status> { todo!() } @@ -49,7 +49,7 @@ impl index_server::Index for super::Agent { #[doc = " Represent the RPC to get the agent index information.\n"] async fn index_info( &self, - request: tonic::Request, + _request: tonic::Request, ) -> std::result::Result, tonic::Status> { todo!() } @@ -57,14 +57,14 @@ impl index_server::Index for super::Agent { #[doc = " Represent the RPC to get the agent index detailed information.\n"] async fn index_detail( &self, - request: tonic::Request, + _request: tonic::Request, ) -> std::result::Result, tonic::Status> { todo!() } #[doc = " Represent the RPC to get the agent index statistics.\n"] async fn index_statistics( &self, - request: tonic::Request, + _request: tonic::Request, ) -> std::result::Result, tonic::Status> { todo!() } @@ -72,7 +72,7 @@ impl index_server::Index for super::Agent { #[doc = " Represent the RPC to get the agent index detailed statistics.\n"] async fn index_statistics_detail( &self, - request: tonic::Request, + _request: tonic::Request, ) -> std::result::Result, tonic::Status> { todo!() } @@ -80,7 +80,7 @@ impl index_server::Index for super::Agent { #[doc = " Represent the RPC to get the index property.\n"] async fn index_property( &self, - request: tonic::Request, + _request: tonic::Request, ) -> std::result::Result, tonic::Status> { todo!() } diff --git a/rust/bin/agent/src/handler/insert.rs b/rust/bin/agent/src/handler/insert.rs index e0073a0818..91f77a00d7 100644 --- a/rust/bin/agent/src/handler/insert.rs +++ b/rust/bin/agent/src/handler/insert.rs @@ -21,7 +21,7 @@ use proto::{ impl insert_server::Insert for super::Agent { async fn insert( &self, - request: tonic::Request, + _request: tonic::Request, ) -> std::result::Result, tonic::Status> { todo!() } @@ -32,7 +32,7 @@ impl insert_server::Insert for super::Agent { #[doc = " A method to add new multiple vectors by bidirectional streaming.\n"] async fn stream_insert( &self, - request: tonic::Request>, + _request: tonic::Request>, ) -> std::result::Result, tonic::Status> { todo!() } @@ -40,7 +40,7 @@ impl insert_server::Insert for super::Agent { #[doc = " A method to add new multiple vectors in a single request.\n"] async fn multi_insert( &self, - request: tonic::Request, + _request: tonic::Request, ) -> std::result::Result, tonic::Status> { todo!() } diff --git a/rust/bin/agent/src/handler/remove.rs b/rust/bin/agent/src/handler/remove.rs index 803f33564d..25f45b8bb4 100644 --- a/rust/bin/agent/src/handler/remove.rs +++ b/rust/bin/agent/src/handler/remove.rs @@ -22,7 +22,7 @@ use proto::{ impl remove_server::Remove for super::Agent { async fn remove( &self, - request: tonic::Request, + _request: tonic::Request, ) -> std::result::Result, tonic::Status> { todo!() } @@ -30,7 +30,7 @@ impl remove_server::Remove for super::Agent { #[doc = " A method to remove an indexed vector based on timestamp.\n"] async fn remove_by_timestamp( &self, - request: tonic::Request, + _request: tonic::Request, ) -> std::result::Result, tonic::Status> { todo!() } @@ -41,7 +41,7 @@ impl remove_server::Remove for super::Agent { #[doc = " A method to remove multiple indexed vectors by bidirectional streaming.\n"] async fn stream_remove( &self, - request: tonic::Request>, + _request: tonic::Request>, ) -> std::result::Result, tonic::Status> { todo!() } @@ -49,7 +49,7 @@ impl remove_server::Remove for super::Agent { #[doc = " A method to remove multiple indexed vectors in a single request.\n"] async fn multi_remove( &self, - request: tonic::Request, + _request: tonic::Request, ) -> std::result::Result, tonic::Status> { todo!() } diff --git a/rust/bin/agent/src/handler/search.rs b/rust/bin/agent/src/handler/search.rs index d522d456ae..8824a00ac6 100644 --- a/rust/bin/agent/src/handler/search.rs +++ b/rust/bin/agent/src/handler/search.rs @@ -13,21 +13,95 @@ // See the License for the specific language governing permissions and // limitations under the License. // +use std::{collections::HashMap, string::String}; + +use algorithm::Error; +use anyhow::Result; use proto::{payload::v1::search, vald::v1::search_server}; +use prost::Message; +use tonic::{Code, Status}; +use tonic_types::{ErrorDetails, FieldViolation, StatusExt}; #[tonic::async_trait] impl search_server::Search for super::Agent { async fn search( &self, request: tonic::Request, - ) -> Result, tonic::Status> { - todo!() + ) -> Result, Status> { + println!("Recieved a request from {:?}", request.remote_addr()); + let req = request.get_ref(); + let config = req.config.clone().unwrap(); + let hostname = cargo::util::hostname()?; + let domain = hostname.to_str().unwrap(); + if req.vector.len() != self.s.get_dimension_size() { + let err = Error::IncompatibleDimensionSize{ got: req.vector.len(), want: self.s.get_dimension_size()}; + let mut err_details = ErrorDetails::new(); + err_details.set_error_info(err.to_string(), domain, HashMap::new()); + err_details.set_request_info(config.request_id, String::from_utf8(req.encode_to_vec()).unwrap()); + err_details.set_bad_request(vec![FieldViolation::new("vector dimension size", err.to_string())]); + err_details.set_resource_info(self.resource_type.clone() + "/ngt.Search", "", "", ""); + let status = Status::with_error_details(Code::InvalidArgument, "Search API Incombatible Dimension Size detedted", err_details); + return Err(status); + } + + let result = self.s.search(req.vector.clone(), config.num, config.epsilon, config.radius); + match result { + Err(err) => { + let metadata = HashMap::new(); + let resource_type = self.resource_type.clone() + "/ngt.Search"; + let resource_name = format!("{}: {}({})", self.api_name, self.name, self.ip); + let status = match err { + Error::CreateIndexingIsInProgress{} => { + let mut err_details = ErrorDetails::new(); + err_details.set_error_info(err.to_string(), domain, metadata); + err_details.set_request_info(config.request_id, String::from_utf8(req.encode_to_vec()).unwrap()); + err_details.set_resource_info(resource_type, resource_name, "", ""); + Status::with_error_details(Code::Aborted, "Search API aborted to process search request due to creating indices is in progress", err_details) + } + Error::FlushingIsInProgress{} => { + let mut err_details = ErrorDetails::new(); + err_details.set_error_info(err.to_string(), domain, metadata); + err_details.set_request_info(config.request_id, String::from_utf8(req.encode_to_vec()).unwrap()); + err_details.set_resource_info(resource_type, resource_name, "", ""); + Status::with_error_details(Code::Aborted, "Search API aborted to process search request due to flushing indices is in progress", err_details) + } + Error::EmptySearchResult{} => { + let request_id = config.request_id; + let mut err_details = ErrorDetails::new(); + err_details.set_error_info(err.to_string(), domain, metadata); + err_details.set_request_info(&request_id, String::from_utf8(req.encode_to_vec()).unwrap()); + err_details.set_resource_info(resource_type, resource_name, "", ""); + Status::with_error_details(Code::NotFound, format!("Search API requestID {}'s search result not found", &request_id), err_details) + } + Error::IncompatibleDimensionSize{ got: _, want: _ } => { + let mut err_details = ErrorDetails::new(); + err_details.set_error_info(err.to_string(), domain, metadata); + err_details.set_request_info(config.request_id, String::from_utf8(req.encode_to_vec()).unwrap()); + err_details.set_resource_info(resource_type, resource_name, "", ""); + err_details.set_bad_request(vec![FieldViolation::new("vector dimension size", err.to_string())]); + Status::with_error_details(Code::InvalidArgument, "Search API Incompatible Dimension Size detected", err_details) + } + _ => { + let mut err_details = ErrorDetails::new(); + err_details.set_error_info(err.to_string(), domain, metadata); + err_details.set_request_info(config.request_id, String::from_utf8(req.encode_to_vec()).unwrap()); + err_details.set_resource_info(resource_type, resource_name, "", ""); + Status::with_error_details(Code::Internal, "Search API failed to process search request", err_details) + } + }; + Err(status) + } + Ok(mut response) => { + response.get_mut().request_id = config.request_id; + Ok(response) + } + } } #[doc = " A method to search indexed vectors by ID.\n"] async fn search_by_id( &self, - request: tonic::Request, + _request: tonic::Request, ) -> Result, tonic::Status> { todo!() } @@ -38,7 +112,7 @@ impl search_server::Search for super::Agent { #[doc = " A method to search indexed vectors by multiple vectors.\n"] async fn stream_search( &self, - request: tonic::Request>, + _request: tonic::Request>, ) -> std::result::Result, tonic::Status> { todo!() } @@ -49,7 +123,7 @@ impl search_server::Search for super::Agent { #[doc = " A method to search indexed vectors by multiple IDs.\n"] async fn stream_search_by_id( &self, - request: tonic::Request>, + _request: tonic::Request>, ) -> std::result::Result, tonic::Status> { todo!() } @@ -57,7 +131,7 @@ impl search_server::Search for super::Agent { #[doc = " A method to search indexed vectors by multiple vectors in a single request.\n"] async fn multi_search( &self, - request: tonic::Request, + _request: tonic::Request, ) -> std::result::Result, tonic::Status> { todo!() } @@ -65,7 +139,7 @@ impl search_server::Search for super::Agent { #[doc = " A method to search indexed vectors by multiple IDs in a single request.\n"] async fn multi_search_by_id( &self, - request: tonic::Request, + _request: tonic::Request, ) -> std::result::Result, tonic::Status> { todo!() } @@ -73,7 +147,7 @@ impl search_server::Search for super::Agent { #[doc = " A method to linear search indexed vectors by a raw vector.\n"] async fn linear_search( &self, - request: tonic::Request, + _request: tonic::Request, ) -> std::result::Result, tonic::Status> { todo!() } @@ -81,7 +155,7 @@ impl search_server::Search for super::Agent { #[doc = " A method to linear search indexed vectors by ID.\n"] async fn linear_search_by_id( &self, - request: tonic::Request, + _request: tonic::Request, ) -> std::result::Result, tonic::Status> { todo!() } @@ -92,7 +166,7 @@ impl search_server::Search for super::Agent { #[doc = " A method to linear search indexed vectors by multiple vectors.\n"] async fn stream_linear_search( &self, - request: tonic::Request>, + _request: tonic::Request>, ) -> std::result::Result, tonic::Status> { todo!() } @@ -103,7 +177,7 @@ impl search_server::Search for super::Agent { #[doc = " A method to linear search indexed vectors by multiple IDs.\n"] async fn stream_linear_search_by_id( &self, - request: tonic::Request>, + _request: tonic::Request>, ) -> std::result::Result, tonic::Status> { todo!() @@ -112,7 +186,7 @@ impl search_server::Search for super::Agent { #[doc = " A method to linear search indexed vectors by multiple vectors in a single\n request.\n"] async fn multi_linear_search( &self, - request: tonic::Request, + _request: tonic::Request, ) -> std::result::Result, tonic::Status> { todo!() } @@ -120,7 +194,7 @@ impl search_server::Search for super::Agent { #[doc = " A method to linear search indexed vectors by multiple IDs in a single\n request.\n"] async fn multi_linear_search_by_id( &self, - request: tonic::Request, + _request: tonic::Request, ) -> std::result::Result, tonic::Status> { todo!() } diff --git a/rust/bin/agent/src/handler/update.rs b/rust/bin/agent/src/handler/update.rs index 90ac9d5cdb..073faaa2e4 100644 --- a/rust/bin/agent/src/handler/update.rs +++ b/rust/bin/agent/src/handler/update.rs @@ -22,7 +22,7 @@ use proto::{ impl update_server::Update for super::Agent { async fn update( &self, - request: tonic::Request, + _request: tonic::Request, ) -> std::result::Result, tonic::Status> { todo!() } @@ -33,7 +33,7 @@ impl update_server::Update for super::Agent { #[doc = " A method to update multiple indexed vectors by bidirectional streaming.\n"] async fn stream_update( &self, - request: tonic::Request>, + _request: tonic::Request>, ) -> std::result::Result, tonic::Status> { todo!() } @@ -41,7 +41,7 @@ impl update_server::Update for super::Agent { #[doc = " A method to update multiple indexed vectors in a single request.\n"] async fn multi_update( &self, - request: tonic::Request, + _request: tonic::Request, ) -> std::result::Result, tonic::Status> { todo!() } diff --git a/rust/bin/agent/src/handler/upsert.rs b/rust/bin/agent/src/handler/upsert.rs index 8191d736c4..c1040e6c9e 100644 --- a/rust/bin/agent/src/handler/upsert.rs +++ b/rust/bin/agent/src/handler/upsert.rs @@ -22,7 +22,7 @@ use proto::{ impl upsert_server::Upsert for super::Agent { async fn upsert( &self, - request: tonic::Request, + _request: tonic::Request, ) -> std::result::Result, tonic::Status> { todo!() } @@ -33,7 +33,7 @@ impl upsert_server::Upsert for super::Agent { #[doc = " A method to insert/update multiple vectors by bidirectional streaming.\n"] async fn stream_upsert( &self, - request: tonic::Request>, + _request: tonic::Request>, ) -> std::result::Result, tonic::Status> { todo!() } @@ -41,7 +41,7 @@ impl upsert_server::Upsert for super::Agent { #[doc = " A method to insert/update multiple vectors in a single request.\n"] async fn multi_upsert( &self, - request: tonic::Request, + _request: tonic::Request, ) -> std::result::Result, tonic::Status> { todo!() } diff --git a/rust/bin/agent/src/main.rs b/rust/bin/agent/src/main.rs index 5ef03c184d..d8755fc343 100644 --- a/rust/bin/agent/src/main.rs +++ b/rust/bin/agent/src/main.rs @@ -14,12 +14,32 @@ // limitations under the License. // +use algorithm::Error; +use anyhow::Result; +use proto::payload::v1::search; + mod handler; +#[derive(Debug)] +struct MockService { + dim: usize +} + +impl algorithm::ANN for MockService { + fn get_dimension_size(&self) -> usize { + self.dim + } + + fn search(&self, _vector: Vec, dim: u32, _epsilon: f32, _radius: f32) -> Result, Error> { + Err(Error::IncompatibleDimensionSize{got: dim as usize, want: self.dim}.into()) + } +} + #[tokio::main] async fn main() -> Result<(), Box> { - let addr = "[::1]:8081".parse()?; - let agent = handler::Agent::default(); + let addr = "0.0.0.0:8081".parse()?; + let service = MockService{ dim: 42 }; + let agent = handler::Agent::new(service, "agent-ngt", "127.0.0.1", "vald/internal/core/algorithm", "vald-agent"); tonic::transport::Server::builder() .add_service(proto::core::v1::agent_server::AgentServer::new(agent)) diff --git a/rust/libs/algorithm/Cargo.toml b/rust/libs/algorithm/Cargo.toml index c4ca71aef8..7af0713ebf 100644 --- a/rust/libs/algorithm/Cargo.toml +++ b/rust/libs/algorithm/Cargo.toml @@ -19,5 +19,8 @@ version = "0.1.0" edition = "2021" [dependencies] +anyhow = "1.0.88" faiss = { version = "0.1.0", path = "../algorithms/faiss" } ngt = { version = "0.1.0", path = "../algorithms/ngt" } +proto = { version = "0.1.0", path = "../proto" } +tonic = "0.12.2" diff --git a/rust/libs/algorithm/src/lib.rs b/rust/libs/algorithm/src/lib.rs index cdca5d93de..d83e45e5bd 100644 --- a/rust/libs/algorithm/src/lib.rs +++ b/rust/libs/algorithm/src/lib.rs @@ -13,17 +13,36 @@ // See the License for the specific language governing permissions and // limitations under the License. // -pub fn add(left: u64, right: u64) -> u64 { - left + right +use std::{error, fmt}; + +use anyhow::Result; +use proto::payload::v1::search; + +#[derive(Debug)] +pub enum Error { + CreateIndexingIsInProgress{}, + FlushingIsInProgress{}, + EmptySearchResult{}, + IncompatibleDimensionSize{got: usize, want: usize}, + + Unknown{}, } -#[cfg(test)] -mod tests { - use super::*; +impl error::Error for Error {} - #[test] - fn it_works() { - let result = add(2, 2); - assert_eq!(result, 4); +impl fmt::Display for Error { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Error::CreateIndexingIsInProgress{} => write!(f, "create indexing is in progress"), + Error::FlushingIsInProgress{} => write!(f, "flush is in progress"), + Error::EmptySearchResult{} => write!(f, "search result is empty"), + Error::IncompatibleDimensionSize { got, want } => write!(f, "incompatible dimension size detected\trequested: {},\tconfigured: {}", got, want), + Error::Unknown { } => write!(f, "unknown error") + } } } + +pub trait ANN: Send + Sync { + fn get_dimension_size(&self) -> usize; + fn search(&self, vector: Vec, dim: u32, epsilon: f32, radius: f32) -> Result, Error>; +} diff --git a/rust/libs/algorithms/ngt/Cargo.toml b/rust/libs/algorithms/ngt/Cargo.toml index 64517bf474..7e376d65be 100644 --- a/rust/libs/algorithms/ngt/Cargo.toml +++ b/rust/libs/algorithms/ngt/Cargo.toml @@ -19,11 +19,11 @@ version = "0.1.0" edition = "2021" [dependencies] -anyhow = "1.0.86" -cxx = { version = "1.0.126", features = ["c++20"] } +anyhow = "1.0.88" +cxx = { version = "1.0.128", features = ["c++20"] } [build-dependencies] -cxx-build = "1.0.126" +cxx-build = "1.0.128" miette = { version = "7.2.0", features = ["fancy"] } [dev-dependencies] diff --git a/rust/libs/observability/Cargo.toml b/rust/libs/observability/Cargo.toml index 1ef800cefb..5f3e63e97b 100644 --- a/rust/libs/observability/Cargo.toml +++ b/rust/libs/observability/Cargo.toml @@ -24,10 +24,10 @@ edition = "2021" opentelemetry = { version = "0.23" } opentelemetry_sdk = { version = "0.23", features = ["rt-tokio"] } opentelemetry-otlp = { version = "0.16.0", features = ["http-proto", "reqwest-client", "logs"] } -tokio = { version = "1.39.3", features = ["full"] } -serde_json = { version="1.0.125" } +tokio = { version = "1.40.0", features = ["full"] } +serde_json = { version="1.0.128" } opentelemetry-semantic-conventions = { version = "0.16.0"} scopeguard = { version = "1.2.0"} paste = {version = "1.0.15"} -anyhow = { version = "1.0.86"} +anyhow = { version = "1.0.88"} url = { version = "2.5.2"} diff --git a/rust/libs/proto/Cargo.toml b/rust/libs/proto/Cargo.toml index 56505cf1bd..9489c412d4 100644 --- a/rust/libs/proto/Cargo.toml +++ b/rust/libs/proto/Cargo.toml @@ -22,7 +22,7 @@ edition = "2021" [dependencies] futures-core = "0.3.30" -prost = "0.13.1" +prost = "0.13.2" prost-types = "0.13.2" -tonic = "0.12.1" -tonic-types = "0.12.1" +tonic = "0.12.2" +tonic-types = "0.12.2" diff --git a/rust/libs/proto/src/filter.egress.v1.tonic.rs b/rust/libs/proto/src/filter.egress.v1.tonic.rs index 74102173ce..9627dbcf2c 100644 --- a/rust/libs/proto/src/filter.egress.v1.tonic.rs +++ b/rust/libs/proto/src/filter.egress.v1.tonic.rs @@ -17,6 +17,8 @@ pub mod filter_client { #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] use tonic::codegen::*; use tonic::codegen::http::Uri; + /** Represent the egress filter service. +*/ #[derive(Debug, Clone)] pub struct FilterClient { inner: tonic::client::Grpc, @@ -187,6 +189,8 @@ pub mod filter_server { tonic::Status, >; } + /** Represent the egress filter service. +*/ #[derive(Debug)] pub struct FilterServer { inner: Arc, diff --git a/rust/libs/proto/src/filter.ingress.v1.tonic.rs b/rust/libs/proto/src/filter.ingress.v1.tonic.rs index d8b462caa1..76f377386b 100644 --- a/rust/libs/proto/src/filter.ingress.v1.tonic.rs +++ b/rust/libs/proto/src/filter.ingress.v1.tonic.rs @@ -17,6 +17,8 @@ pub mod filter_client { #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] use tonic::codegen::*; use tonic::codegen::http::Uri; + /** Represent the ingress filter service. +*/ #[derive(Debug, Clone)] pub struct FilterClient { inner: tonic::client::Grpc, @@ -187,6 +189,8 @@ pub mod filter_server { tonic::Status, >; } + /** Represent the ingress filter service. +*/ #[derive(Debug)] pub struct FilterServer { inner: Arc, diff --git a/rust/libs/proto/src/lib.rs b/rust/libs/proto/src/lib.rs index 7155b32bc7..b4685950c9 100644 --- a/rust/libs/proto/src/lib.rs +++ b/rust/libs/proto/src/lib.rs @@ -16,6 +16,7 @@ pub mod google { pub mod rpc { pub type Status = tonic_types::Status; +// include!("rpc.v1.rs"); } } diff --git a/rust/libs/proto/src/meta.v1.tonic.rs b/rust/libs/proto/src/meta.v1.tonic.rs index b683ff6440..7f106ee0ca 100644 --- a/rust/libs/proto/src/meta.v1.tonic.rs +++ b/rust/libs/proto/src/meta.v1.tonic.rs @@ -97,6 +97,7 @@ pub mod meta_client { self.inner = self.inner.max_encoding_message_size(limit); self } + /// pub async fn get( &mut self, request: impl tonic::IntoRequest, @@ -176,6 +177,7 @@ pub mod meta_server { /// Generated trait containing gRPC methods that should be implemented for use with MetaServer. #[async_trait] pub trait Meta: Send + Sync + 'static { + /// async fn get( &self, request: tonic::Request, diff --git a/rust/libs/proto/src/payload.v1.rs b/rust/libs/proto/src/payload.v1.rs index fbb3594f35..ee11217a6f 100644 --- a/rust/libs/proto/src/payload.v1.rs +++ b/rust/libs/proto/src/payload.v1.rs @@ -30,6 +30,10 @@ pub mod search { #[prost(message, optional, tag="2")] pub config: ::core::option::Option, } +impl ::prost::Name for Request { +const NAME: &'static str = "Request"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Search.Request".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Search.Request".into() }} /// Represent the multiple search request. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -38,6 +42,10 @@ pub mod search { #[prost(message, repeated, tag="1")] pub requests: ::prost::alloc::vec::Vec, } +impl ::prost::Name for MultiRequest { +const NAME: &'static str = "MultiRequest"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Search.MultiRequest".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Search.MultiRequest".into() }} /// Represent a search by ID request. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -49,6 +57,10 @@ pub mod search { #[prost(message, optional, tag="2")] pub config: ::core::option::Option, } +impl ::prost::Name for IdRequest { +const NAME: &'static str = "IDRequest"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Search.IDRequest".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Search.IDRequest".into() }} /// Represent the multiple search by ID request. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -57,6 +69,10 @@ pub mod search { #[prost(message, repeated, tag="1")] pub requests: ::prost::alloc::vec::Vec, } +impl ::prost::Name for MultiIdRequest { +const NAME: &'static str = "MultiIDRequest"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Search.MultiIDRequest".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Search.MultiIDRequest".into() }} /// Represent a search by binary object request. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -71,6 +87,10 @@ pub mod search { #[prost(message, optional, tag="3")] pub vectorizer: ::core::option::Option, } +impl ::prost::Name for ObjectRequest { +const NAME: &'static str = "ObjectRequest"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Search.ObjectRequest".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Search.ObjectRequest".into() }} /// Represent the multiple search by binary object request. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -79,6 +99,10 @@ pub mod search { #[prost(message, repeated, tag="1")] pub requests: ::prost::alloc::vec::Vec, } +impl ::prost::Name for MultiObjectRequest { +const NAME: &'static str = "MultiObjectRequest"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Search.MultiObjectRequest".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Search.MultiObjectRequest".into() }} /// Represent search configuration. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -117,6 +141,10 @@ pub mod search { #[prost(uint32, tag="11")] pub nprobe: u32, } +impl ::prost::Name for Config { +const NAME: &'static str = "Config"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Search.Config".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Search.Config".into() }} /// Represent a search response. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -128,6 +156,10 @@ pub mod search { #[prost(message, repeated, tag="2")] pub results: ::prost::alloc::vec::Vec, } +impl ::prost::Name for Response { +const NAME: &'static str = "Response"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Search.Response".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Search.Response".into() }} /// Represent multiple search responses. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -136,6 +168,10 @@ pub mod search { #[prost(message, repeated, tag="1")] pub responses: ::prost::alloc::vec::Vec, } +impl ::prost::Name for Responses { +const NAME: &'static str = "Responses"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Search.Responses".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Search.Responses".into() }} /// Represent stream search response. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -156,6 +192,10 @@ pub mod search { Status(super::super::super::super::google::rpc::Status), } } +impl ::prost::Name for StreamResponse { +const NAME: &'static str = "StreamResponse"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Search.StreamResponse".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Search.StreamResponse".into() }} /// AggregationAlgorithm is enum of each aggregation algorithms #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] @@ -193,6 +233,10 @@ pub mod search { } } } +impl ::prost::Name for Search { +const NAME: &'static str = "Search"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Search".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Search".into() }} /// Filter related messages. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] @@ -211,6 +255,10 @@ pub mod filter { #[prost(uint32, tag="2")] pub port: u32, } +impl ::prost::Name for Target { +const NAME: &'static str = "Target"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Filter.Target".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Filter.Target".into() }} /// Represent filter configuration. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -219,7 +267,15 @@ pub mod filter { #[prost(message, repeated, tag="1")] pub targets: ::prost::alloc::vec::Vec, } +impl ::prost::Name for Config { +const NAME: &'static str = "Config"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Filter.Config".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Filter.Config".into() }} } +impl ::prost::Name for Filter { +const NAME: &'static str = "Filter"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Filter".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Filter".into() }} /// Insert related messages. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] @@ -238,6 +294,10 @@ pub mod insert { #[prost(message, optional, tag="2")] pub config: ::core::option::Option, } +impl ::prost::Name for Request { +const NAME: &'static str = "Request"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Insert.Request".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Insert.Request".into() }} /// Represent the multiple insert request. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -246,6 +306,10 @@ pub mod insert { #[prost(message, repeated, tag="1")] pub requests: ::prost::alloc::vec::Vec, } +impl ::prost::Name for MultiRequest { +const NAME: &'static str = "MultiRequest"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Insert.MultiRequest".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Insert.MultiRequest".into() }} /// Represent the insert by binary object request. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -260,6 +324,10 @@ pub mod insert { #[prost(message, optional, tag="3")] pub vectorizer: ::core::option::Option, } +impl ::prost::Name for ObjectRequest { +const NAME: &'static str = "ObjectRequest"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Insert.ObjectRequest".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Insert.ObjectRequest".into() }} /// Represent the multiple insert by binary object request. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -268,6 +336,10 @@ pub mod insert { #[prost(message, repeated, tag="1")] pub requests: ::prost::alloc::vec::Vec, } +impl ::prost::Name for MultiObjectRequest { +const NAME: &'static str = "MultiObjectRequest"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Insert.MultiObjectRequest".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Insert.MultiObjectRequest".into() }} /// Represent insert configurations. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -282,7 +354,15 @@ pub mod insert { #[prost(int64, tag="3")] pub timestamp: i64, } +impl ::prost::Name for Config { +const NAME: &'static str = "Config"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Insert.Config".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Insert.Config".into() }} } +impl ::prost::Name for Insert { +const NAME: &'static str = "Insert"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Insert".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Insert".into() }} /// Update related messages #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] @@ -301,6 +381,10 @@ pub mod update { #[prost(message, optional, tag="2")] pub config: ::core::option::Option, } +impl ::prost::Name for Request { +const NAME: &'static str = "Request"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Update.Request".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Update.Request".into() }} /// Represent the multiple update request. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -309,6 +393,10 @@ pub mod update { #[prost(message, repeated, tag="1")] pub requests: ::prost::alloc::vec::Vec, } +impl ::prost::Name for MultiRequest { +const NAME: &'static str = "MultiRequest"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Update.MultiRequest".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Update.MultiRequest".into() }} /// Represent the update binary object request. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -323,6 +411,10 @@ pub mod update { #[prost(message, optional, tag="3")] pub vectorizer: ::core::option::Option, } +impl ::prost::Name for ObjectRequest { +const NAME: &'static str = "ObjectRequest"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Update.ObjectRequest".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Update.ObjectRequest".into() }} /// Represent the multiple update binary object request. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -331,6 +423,10 @@ pub mod update { #[prost(message, repeated, tag="1")] pub requests: ::prost::alloc::vec::Vec, } +impl ::prost::Name for MultiObjectRequest { +const NAME: &'static str = "MultiObjectRequest"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Update.MultiObjectRequest".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Update.MultiObjectRequest".into() }} /// Represent a vector meta data. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -345,6 +441,10 @@ pub mod update { #[prost(bool, tag="3")] pub force: bool, } +impl ::prost::Name for TimestampRequest { +const NAME: &'static str = "TimestampRequest"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Update.TimestampRequest".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Update.TimestampRequest".into() }} /// Represent the update configuration. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -363,7 +463,15 @@ pub mod update { #[prost(bool, tag="4")] pub disable_balanced_update: bool, } +impl ::prost::Name for Config { +const NAME: &'static str = "Config"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Update.Config".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Update.Config".into() }} } +impl ::prost::Name for Update { +const NAME: &'static str = "Update"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Update".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Update".into() }} /// Upsert related messages. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] @@ -382,6 +490,10 @@ pub mod upsert { #[prost(message, optional, tag="2")] pub config: ::core::option::Option, } +impl ::prost::Name for Request { +const NAME: &'static str = "Request"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Upsert.Request".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Upsert.Request".into() }} /// Represent mthe ultiple upsert request. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -390,6 +502,10 @@ pub mod upsert { #[prost(message, repeated, tag="1")] pub requests: ::prost::alloc::vec::Vec, } +impl ::prost::Name for MultiRequest { +const NAME: &'static str = "MultiRequest"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Upsert.MultiRequest".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Upsert.MultiRequest".into() }} /// Represent the upsert binary object request. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -404,6 +520,10 @@ pub mod upsert { #[prost(message, optional, tag="3")] pub vectorizer: ::core::option::Option, } +impl ::prost::Name for ObjectRequest { +const NAME: &'static str = "ObjectRequest"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Upsert.ObjectRequest".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Upsert.ObjectRequest".into() }} /// Represent the multiple upsert binary object request. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -412,6 +532,10 @@ pub mod upsert { #[prost(message, repeated, tag="1")] pub requests: ::prost::alloc::vec::Vec, } +impl ::prost::Name for MultiObjectRequest { +const NAME: &'static str = "MultiObjectRequest"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Upsert.MultiObjectRequest".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Upsert.MultiObjectRequest".into() }} /// Represent the upsert configuration. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -430,7 +554,15 @@ pub mod upsert { #[prost(bool, tag="4")] pub disable_balanced_update: bool, } +impl ::prost::Name for Config { +const NAME: &'static str = "Config"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Upsert.Config".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Upsert.Config".into() }} } +impl ::prost::Name for Upsert { +const NAME: &'static str = "Upsert"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Upsert".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Upsert".into() }} /// Remove related messages. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] @@ -449,6 +581,10 @@ pub mod remove { #[prost(message, optional, tag="2")] pub config: ::core::option::Option, } +impl ::prost::Name for Request { +const NAME: &'static str = "Request"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Remove.Request".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Remove.Request".into() }} /// Represent the multiple remove request. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -457,6 +593,10 @@ pub mod remove { #[prost(message, repeated, tag="1")] pub requests: ::prost::alloc::vec::Vec, } +impl ::prost::Name for MultiRequest { +const NAME: &'static str = "MultiRequest"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Remove.MultiRequest".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Remove.MultiRequest".into() }} /// Represent the remove request based on timestamp. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -466,6 +606,10 @@ pub mod remove { #[prost(message, repeated, tag="1")] pub timestamps: ::prost::alloc::vec::Vec, } +impl ::prost::Name for TimestampRequest { +const NAME: &'static str = "TimestampRequest"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Remove.TimestampRequest".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Remove.TimestampRequest".into() }} /// Represent the timestamp comparison. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] @@ -527,6 +671,10 @@ pub mod remove { } } } +impl ::prost::Name for Timestamp { +const NAME: &'static str = "Timestamp"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Remove.Timestamp".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Remove.Timestamp".into() }} /// Represent the remove configuration. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] @@ -538,7 +686,15 @@ pub mod remove { #[prost(int64, tag="3")] pub timestamp: i64, } +impl ::prost::Name for Config { +const NAME: &'static str = "Config"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Remove.Config".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Remove.Config".into() }} } +impl ::prost::Name for Remove { +const NAME: &'static str = "Remove"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Remove".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Remove".into() }} /// Flush related messages. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] @@ -550,7 +706,15 @@ pub mod flush { #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Request { } +impl ::prost::Name for Request { +const NAME: &'static str = "Request"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Flush.Request".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Flush.Request".into() }} } +impl ::prost::Name for Flush { +const NAME: &'static str = "Flush"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Flush".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Flush".into() }} /// Common messages. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] @@ -569,6 +733,10 @@ pub mod object { #[prost(message, optional, tag="2")] pub filters: ::core::option::Option, } +impl ::prost::Name for VectorRequest { +const NAME: &'static str = "VectorRequest"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Object.VectorRequest".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Object.VectorRequest".into() }} /// Represent the ID and distance pair. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -580,6 +748,10 @@ pub mod object { #[prost(float, tag="2")] pub distance: f32, } +impl ::prost::Name for Distance { +const NAME: &'static str = "Distance"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Object.Distance".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Object.Distance".into() }} /// Represent stream response of distances. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -600,6 +772,10 @@ pub mod object { Status(super::super::super::super::google::rpc::Status), } } +impl ::prost::Name for StreamDistance { +const NAME: &'static str = "StreamDistance"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Object.StreamDistance".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Object.StreamDistance".into() }} /// Represent the vector ID. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -607,6 +783,10 @@ pub mod object { #[prost(string, tag="1")] pub id: ::prost::alloc::string::String, } +impl ::prost::Name for Id { +const NAME: &'static str = "ID"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Object.ID".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Object.ID".into() }} /// Represent multiple vector IDs. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -614,6 +794,10 @@ pub mod object { #[prost(string, repeated, tag="1")] pub ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } +impl ::prost::Name for IDs { +const NAME: &'static str = "IDs"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Object.IDs".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Object.IDs".into() }} /// Represent a vector. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -628,6 +812,10 @@ pub mod object { #[prost(int64, tag="3")] pub timestamp: i64, } +impl ::prost::Name for Vector { +const NAME: &'static str = "Vector"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Object.Vector".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Object.Vector".into() }} /// Represent a request to fetch vector meta data. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -636,6 +824,10 @@ pub mod object { #[prost(message, optional, tag="1")] pub id: ::core::option::Option, } +impl ::prost::Name for TimestampRequest { +const NAME: &'static str = "TimestampRequest"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Object.TimestampRequest".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Object.TimestampRequest".into() }} /// Represent a vector meta data. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -647,6 +839,10 @@ pub mod object { #[prost(int64, tag="2")] pub timestamp: i64, } +impl ::prost::Name for Timestamp { +const NAME: &'static str = "Timestamp"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Object.Timestamp".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Object.Timestamp".into() }} /// Represent multiple vectors. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -654,6 +850,10 @@ pub mod object { #[prost(message, repeated, tag="1")] pub vectors: ::prost::alloc::vec::Vec, } +impl ::prost::Name for Vectors { +const NAME: &'static str = "Vectors"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Object.Vectors".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Object.Vectors".into() }} /// Represent stream response of the vector. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -674,6 +874,10 @@ pub mod object { Status(super::super::super::super::google::rpc::Status), } } +impl ::prost::Name for StreamVector { +const NAME: &'static str = "StreamVector"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Object.StreamVector".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Object.StreamVector".into() }} /// Represent reshape vector. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -685,6 +889,10 @@ pub mod object { #[prost(int32, repeated, tag="2")] pub shape: ::prost::alloc::vec::Vec, } +impl ::prost::Name for ReshapeVector { +const NAME: &'static str = "ReshapeVector"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Object.ReshapeVector".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Object.ReshapeVector".into() }} /// Represent the binary object. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -696,6 +904,10 @@ pub mod object { #[prost(bytes="vec", tag="2")] pub object: ::prost::alloc::vec::Vec, } +impl ::prost::Name for Blob { +const NAME: &'static str = "Blob"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Object.Blob".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Object.Blob".into() }} /// Represent stream response of binary objects. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -716,6 +928,10 @@ pub mod object { Status(super::super::super::super::google::rpc::Status), } } +impl ::prost::Name for StreamBlob { +const NAME: &'static str = "StreamBlob"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Object.StreamBlob".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Object.StreamBlob".into() }} /// Represent the vector location. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -730,6 +946,10 @@ pub mod object { #[prost(string, repeated, tag="3")] pub ips: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } +impl ::prost::Name for Location { +const NAME: &'static str = "Location"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Object.Location".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Object.Location".into() }} /// Represent the stream response of the vector location. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -750,6 +970,10 @@ pub mod object { Status(super::super::super::super::google::rpc::Status), } } +impl ::prost::Name for StreamLocation { +const NAME: &'static str = "StreamLocation"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Object.StreamLocation".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Object.StreamLocation".into() }} /// Represent multiple vector locations. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -757,6 +981,10 @@ pub mod object { #[prost(message, repeated, tag="1")] pub locations: ::prost::alloc::vec::Vec, } +impl ::prost::Name for Locations { +const NAME: &'static str = "Locations"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Object.Locations".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Object.Locations".into() }} /// Represent the list object vector stream request and response. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] @@ -768,6 +996,10 @@ pub mod object { #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Request { } +impl ::prost::Name for Request { +const NAME: &'static str = "Request"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Object.List.Request".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Object.List.Request".into() }} #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Response { @@ -787,8 +1019,20 @@ pub mod object { Status(super::super::super::super::super::google::rpc::Status), } } - } +impl ::prost::Name for Response { +const NAME: &'static str = "Response"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Object.List.Response".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Object.List.Response".into() }} + } +impl ::prost::Name for List { +const NAME: &'static str = "List"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Object.List".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Object.List".into() }} } +impl ::prost::Name for Object { +const NAME: &'static str = "Object"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Object".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Object".into() }} /// Control related messages. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] @@ -804,7 +1048,15 @@ pub mod control { #[prost(uint32, tag="1")] pub pool_size: u32, } +impl ::prost::Name for CreateIndexRequest { +const NAME: &'static str = "CreateIndexRequest"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Control.CreateIndexRequest".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Control.CreateIndexRequest".into() }} } +impl ::prost::Name for Control { +const NAME: &'static str = "Control"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Control".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Control".into() }} /// Discoverer related messages. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] @@ -826,7 +1078,15 @@ pub mod discoverer { #[prost(string, tag="3")] pub node: ::prost::alloc::string::String, } +impl ::prost::Name for Request { +const NAME: &'static str = "Request"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Discoverer.Request".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Discoverer.Request".into() }} } +impl ::prost::Name for Discoverer { +const NAME: &'static str = "Discoverer"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Discoverer".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Discoverer".into() }} /// Info related messages. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] @@ -858,6 +1118,10 @@ pub mod info { #[prost(bool, tag="4")] pub saving: bool, } +impl ::prost::Name for Count { +const NAME: &'static str = "Count"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Info.Index.Count".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Info.Index.Count".into() }} /// Represent the index count for each Agents message. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -872,6 +1136,10 @@ pub mod info { #[prost(uint32, tag="3")] pub live_agents: u32, } +impl ::prost::Name for Detail { +const NAME: &'static str = "Detail"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Info.Index.Detail".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Info.Index.Detail".into() }} /// Represent the UUID message. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] @@ -886,6 +1154,10 @@ pub mod info { #[prost(string, tag="1")] pub uuid: ::prost::alloc::string::String, } +impl ::prost::Name for Committed { +const NAME: &'static str = "Committed"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Info.Index.UUID.Committed".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Info.Index.UUID.Committed".into() }} /// The uncommitted UUID. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -893,7 +1165,15 @@ pub mod info { #[prost(string, tag="1")] pub uuid: ::prost::alloc::string::String, } +impl ::prost::Name for Uncommitted { +const NAME: &'static str = "Uncommitted"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Info.Index.UUID.Uncommitted".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Info.Index.UUID.Uncommitted".into() }} } +impl ::prost::Name for Uuid { +const NAME: &'static str = "UUID"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Info.Index.UUID".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Info.Index.UUID".into() }} /// Represents index Statistics #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -965,6 +1245,10 @@ pub mod info { #[prost(uint64, repeated, tag="33")] pub indegree_histogram: ::prost::alloc::vec::Vec, } +impl ::prost::Name for Statistics { +const NAME: &'static str = "Statistics"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Info.Index.Statistics".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Info.Index.Statistics".into() }} /// Represents index Statistics for each Agents #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -973,6 +1257,10 @@ pub mod info { #[prost(map="string, message", tag="1")] pub details: ::std::collections::HashMap<::prost::alloc::string::String, Statistics>, } +impl ::prost::Name for StatisticsDetail { +const NAME: &'static str = "StatisticsDetail"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Info.Index.StatisticsDetail".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Info.Index.StatisticsDetail".into() }} /// Represents index Property #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -1046,6 +1334,10 @@ pub mod info { #[prost(int32, tag="34")] pub incoming_edge: i32, } +impl ::prost::Name for Property { +const NAME: &'static str = "Property"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Info.Index.Property".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Info.Index.Property".into() }} /// Represents index Properties for each Agents #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -1053,7 +1345,15 @@ pub mod info { #[prost(map="string, message", tag="1")] pub details: ::std::collections::HashMap<::prost::alloc::string::String, Property>, } - } +impl ::prost::Name for PropertyDetail { +const NAME: &'static str = "PropertyDetail"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Info.Index.PropertyDetail".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Info.Index.PropertyDetail".into() }} + } +impl ::prost::Name for Index { +const NAME: &'static str = "Index"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Info.Index".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Info.Index".into() }} /// Represent the pod information message. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -1080,6 +1380,10 @@ pub mod info { #[prost(message, optional, tag="7")] pub node: ::core::option::Option, } +impl ::prost::Name for Pod { +const NAME: &'static str = "Pod"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Info.Pod".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Info.Pod".into() }} /// Represent the node information message. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -1103,6 +1407,10 @@ pub mod info { #[prost(message, optional, tag="6")] pub pods: ::core::option::Option, } +impl ::prost::Name for Node { +const NAME: &'static str = "Node"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Info.Node".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Info.Node".into() }} /// Represent the service information message. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -1126,6 +1434,10 @@ pub mod info { #[prost(message, optional, tag="6")] pub annotations: ::core::option::Option, } +impl ::prost::Name for Service { +const NAME: &'static str = "Service"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Info.Service".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Info.Service".into() }} /// Represets the service port information message. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -1137,6 +1449,10 @@ pub mod info { #[prost(int32, tag="2")] pub port: i32, } +impl ::prost::Name for ServicePort { +const NAME: &'static str = "ServicePort"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Info.ServicePort".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Info.ServicePort".into() }} /// Represent the kubernetes labels. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -1144,6 +1460,10 @@ pub mod info { #[prost(map="string, string", tag="1")] pub labels: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>, } +impl ::prost::Name for Labels { +const NAME: &'static str = "Labels"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Info.Labels".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Info.Labels".into() }} /// Represent the kubernetes annotations. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -1151,6 +1471,10 @@ pub mod info { #[prost(map="string, string", tag="1")] pub annotations: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>, } +impl ::prost::Name for Annotations { +const NAME: &'static str = "Annotations"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Info.Annotations".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Info.Annotations".into() }} /// Represent the CPU information message. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] @@ -1165,6 +1489,10 @@ pub mod info { #[prost(double, tag="3")] pub usage: f64, } +impl ::prost::Name for Cpu { +const NAME: &'static str = "CPU"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Info.CPU".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Info.CPU".into() }} /// Represent the memory information message. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] @@ -1179,6 +1507,10 @@ pub mod info { #[prost(double, tag="3")] pub usage: f64, } +impl ::prost::Name for Memory { +const NAME: &'static str = "Memory"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Info.Memory".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Info.Memory".into() }} /// Represent the multiple pod information message. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -1187,6 +1519,10 @@ pub mod info { #[prost(message, repeated, tag="1")] pub pods: ::prost::alloc::vec::Vec, } +impl ::prost::Name for Pods { +const NAME: &'static str = "Pods"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Info.Pods".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Info.Pods".into() }} /// Represent the multiple node information message. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -1195,6 +1531,10 @@ pub mod info { #[prost(message, repeated, tag="1")] pub nodes: ::prost::alloc::vec::Vec, } +impl ::prost::Name for Nodes { +const NAME: &'static str = "Nodes"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Info.Nodes".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Info.Nodes".into() }} /// Represent the multiple service information message. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -1203,6 +1543,10 @@ pub mod info { #[prost(message, repeated, tag="1")] pub services: ::prost::alloc::vec::Vec, } +impl ::prost::Name for Services { +const NAME: &'static str = "Services"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Info.Services".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Info.Services".into() }} /// Represent the multiple IP message. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -1210,7 +1554,15 @@ pub mod info { #[prost(string, repeated, tag="1")] pub ip: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } +impl ::prost::Name for IPs { +const NAME: &'static str = "IPs"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Info.IPs".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Info.IPs".into() }} } +impl ::prost::Name for Info { +const NAME: &'static str = "Info"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Info".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Info".into() }} /// Mirror related messages. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] @@ -1229,6 +1581,10 @@ pub mod mirror { #[prost(uint32, tag="2")] pub port: u32, } +impl ::prost::Name for Target { +const NAME: &'static str = "Target"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Mirror.Target".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Mirror.Target".into() }} /// Represent the multiple Target message. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -1237,7 +1593,15 @@ pub mod mirror { #[prost(message, repeated, tag="1")] pub targets: ::prost::alloc::vec::Vec, } +impl ::prost::Name for Targets { +const NAME: &'static str = "Targets"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Mirror.Targets".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Mirror.Targets".into() }} } +impl ::prost::Name for Mirror { +const NAME: &'static str = "Mirror"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Mirror".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Mirror".into() }} #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Meta { @@ -1250,12 +1614,20 @@ pub mod meta { #[prost(string, tag="1")] pub key: ::prost::alloc::string::String, } +impl ::prost::Name for Key { +const NAME: &'static str = "Key"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Meta.Key".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Meta.Key".into() }} #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Value { #[prost(message, optional, tag="1")] pub value: ::core::option::Option<::prost_types::Any>, } +impl ::prost::Name for Value { +const NAME: &'static str = "Value"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Meta.Value".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Meta.Value".into() }} #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct KeyValue { @@ -1264,10 +1636,22 @@ pub mod meta { #[prost(message, optional, tag="2")] pub value: ::core::option::Option, } +impl ::prost::Name for KeyValue { +const NAME: &'static str = "KeyValue"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Meta.KeyValue".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Meta.KeyValue".into() }} } +impl ::prost::Name for Meta { +const NAME: &'static str = "Meta"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Meta".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Meta".into() }} /// Represent an empty message. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct Empty { } +impl ::prost::Name for Empty { +const NAME: &'static str = "Empty"; +const PACKAGE: &'static str = "payload.v1"; +fn full_name() -> ::prost::alloc::string::String { "payload.v1.Empty".into() }fn type_url() -> ::prost::alloc::string::String { "/payload.v1.Empty".into() }} // @@protoc_insertion_point(module) diff --git a/rust/libs/proto/src/rpc.v1.rs b/rust/libs/proto/src/rpc.v1.rs index 3b9abf8f8b..d41601b08d 100644 --- a/rust/libs/proto/src/rpc.v1.rs +++ b/rust/libs/proto/src/rpc.v1.rs @@ -42,6 +42,10 @@ pub struct ErrorInfo { #[prost(map="string, string", tag="3")] pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>, } +impl ::prost::Name for ErrorInfo { +const NAME: &'static str = "ErrorInfo"; +const PACKAGE: &'static str = "rpc.v1"; +fn full_name() -> ::prost::alloc::string::String { "rpc.v1.ErrorInfo".into() }fn type_url() -> ::prost::alloc::string::String { "/rpc.v1.ErrorInfo".into() }} /// Describes when the clients can retry a failed request. Clients could ignore /// the recommendation here or retry when this information is missing from error /// responses. @@ -62,6 +66,10 @@ pub struct RetryInfo { #[prost(message, optional, tag="1")] pub retry_delay: ::core::option::Option<::prost_types::Duration>, } +impl ::prost::Name for RetryInfo { +const NAME: &'static str = "RetryInfo"; +const PACKAGE: &'static str = "rpc.v1"; +fn full_name() -> ::prost::alloc::string::String { "rpc.v1.RetryInfo".into() }fn type_url() -> ::prost::alloc::string::String { "/rpc.v1.RetryInfo".into() }} /// Describes additional debugging info. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -73,6 +81,10 @@ pub struct DebugInfo { #[prost(string, tag="2")] pub detail: ::prost::alloc::string::String, } +impl ::prost::Name for DebugInfo { +const NAME: &'static str = "DebugInfo"; +const PACKAGE: &'static str = "rpc.v1"; +fn full_name() -> ::prost::alloc::string::String { "rpc.v1.DebugInfo".into() }fn type_url() -> ::prost::alloc::string::String { "/rpc.v1.DebugInfo".into() }} /// Describes how a quota check failed. /// /// For example if a daily limit was exceeded for the calling project, @@ -113,7 +125,15 @@ pub mod quota_failure { #[prost(string, tag="2")] pub description: ::prost::alloc::string::String, } +impl ::prost::Name for Violation { +const NAME: &'static str = "Violation"; +const PACKAGE: &'static str = "rpc.v1"; +fn full_name() -> ::prost::alloc::string::String { "rpc.v1.QuotaFailure.Violation".into() }fn type_url() -> ::prost::alloc::string::String { "/rpc.v1.QuotaFailure.Violation".into() }} } +impl ::prost::Name for QuotaFailure { +const NAME: &'static str = "QuotaFailure"; +const PACKAGE: &'static str = "rpc.v1"; +fn full_name() -> ::prost::alloc::string::String { "rpc.v1.QuotaFailure".into() }fn type_url() -> ::prost::alloc::string::String { "/rpc.v1.QuotaFailure".into() }} /// Describes what preconditions have failed. /// /// For example, if an RPC failed because it required the Terms of Service to be @@ -149,7 +169,15 @@ pub mod precondition_failure { #[prost(string, tag="3")] pub description: ::prost::alloc::string::String, } +impl ::prost::Name for Violation { +const NAME: &'static str = "Violation"; +const PACKAGE: &'static str = "rpc.v1"; +fn full_name() -> ::prost::alloc::string::String { "rpc.v1.PreconditionFailure.Violation".into() }fn type_url() -> ::prost::alloc::string::String { "/rpc.v1.PreconditionFailure.Violation".into() }} } +impl ::prost::Name for PreconditionFailure { +const NAME: &'static str = "PreconditionFailure"; +const PACKAGE: &'static str = "rpc.v1"; +fn full_name() -> ::prost::alloc::string::String { "rpc.v1.PreconditionFailure".into() }fn type_url() -> ::prost::alloc::string::String { "/rpc.v1.PreconditionFailure".into() }} /// Describes violations in a client request. This error type focuses on the /// syntactic aspects of the request. #[allow(clippy::derive_partial_eq_without_eq)] @@ -208,7 +236,15 @@ pub mod bad_request { #[prost(string, tag="2")] pub description: ::prost::alloc::string::String, } +impl ::prost::Name for FieldViolation { +const NAME: &'static str = "FieldViolation"; +const PACKAGE: &'static str = "rpc.v1"; +fn full_name() -> ::prost::alloc::string::String { "rpc.v1.BadRequest.FieldViolation".into() }fn type_url() -> ::prost::alloc::string::String { "/rpc.v1.BadRequest.FieldViolation".into() }} } +impl ::prost::Name for BadRequest { +const NAME: &'static str = "BadRequest"; +const PACKAGE: &'static str = "rpc.v1"; +fn full_name() -> ::prost::alloc::string::String { "rpc.v1.BadRequest".into() }fn type_url() -> ::prost::alloc::string::String { "/rpc.v1.BadRequest".into() }} /// Contains metadata about the request that clients can attach when filing a bug /// or providing other forms of feedback. #[allow(clippy::derive_partial_eq_without_eq)] @@ -223,6 +259,10 @@ pub struct RequestInfo { #[prost(string, tag="2")] pub serving_data: ::prost::alloc::string::String, } +impl ::prost::Name for RequestInfo { +const NAME: &'static str = "RequestInfo"; +const PACKAGE: &'static str = "rpc.v1"; +fn full_name() -> ::prost::alloc::string::String { "rpc.v1.RequestInfo".into() }fn type_url() -> ::prost::alloc::string::String { "/rpc.v1.RequestInfo".into() }} /// Describes the resource that is being accessed. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -249,6 +289,10 @@ pub struct ResourceInfo { #[prost(string, tag="4")] pub description: ::prost::alloc::string::String, } +impl ::prost::Name for ResourceInfo { +const NAME: &'static str = "ResourceInfo"; +const PACKAGE: &'static str = "rpc.v1"; +fn full_name() -> ::prost::alloc::string::String { "rpc.v1.ResourceInfo".into() }fn type_url() -> ::prost::alloc::string::String { "/rpc.v1.ResourceInfo".into() }} /// Provides links to documentation or for performing an out of band action. /// /// For example, if a quota check failed with an error indicating the calling @@ -274,7 +318,15 @@ pub mod help { #[prost(string, tag="2")] pub url: ::prost::alloc::string::String, } +impl ::prost::Name for Link { +const NAME: &'static str = "Link"; +const PACKAGE: &'static str = "rpc.v1"; +fn full_name() -> ::prost::alloc::string::String { "rpc.v1.Help.Link".into() }fn type_url() -> ::prost::alloc::string::String { "/rpc.v1.Help.Link".into() }} } +impl ::prost::Name for Help { +const NAME: &'static str = "Help"; +const PACKAGE: &'static str = "rpc.v1"; +fn full_name() -> ::prost::alloc::string::String { "rpc.v1.Help".into() }fn type_url() -> ::prost::alloc::string::String { "/rpc.v1.Help".into() }} /// Provides a localized error message that is safe to return to the user /// which can be attached to an RPC error. #[allow(clippy::derive_partial_eq_without_eq)] @@ -289,4 +341,8 @@ pub struct LocalizedMessage { #[prost(string, tag="2")] pub message: ::prost::alloc::string::String, } +impl ::prost::Name for LocalizedMessage { +const NAME: &'static str = "LocalizedMessage"; +const PACKAGE: &'static str = "rpc.v1"; +fn full_name() -> ::prost::alloc::string::String { "rpc.v1.LocalizedMessage".into() }fn type_url() -> ::prost::alloc::string::String { "/rpc.v1.LocalizedMessage".into() }} // @@protoc_insertion_point(module) diff --git a/rust/libs/proto/src/vald.v1.tonic.rs b/rust/libs/proto/src/vald.v1.tonic.rs index 7cc2207e61..29843a4d93 100644 --- a/rust/libs/proto/src/vald.v1.tonic.rs +++ b/rust/libs/proto/src/vald.v1.tonic.rs @@ -124,6 +124,8 @@ pub mod filter_client { .insert(GrpcMethod::new("vald.v1.Filter", "SearchObject")); self.inner.unary(req, path, codec).await } + /** A method to search multiple objects. +*/ pub async fn multi_search_object( &mut self, request: impl tonic::IntoRequest< @@ -475,6 +477,8 @@ pub mod filter_server { tonic::Response, tonic::Status, >; + /** A method to search multiple objects. +*/ async fn multi_search_object( &self, request: tonic::Request< @@ -4042,6 +4046,8 @@ pub mod search_client { req.extensions_mut().insert(GrpcMethod::new("vald.v1.Search", "Search")); self.inner.unary(req, path, codec).await } + /** A method to search indexed vectors by ID. +*/ pub async fn search_by_id( &mut self, request: impl tonic::IntoRequest< @@ -4392,6 +4398,8 @@ pub mod search_server { tonic::Response, tonic::Status, >; + /** A method to search indexed vectors by ID. +*/ async fn search_by_id( &self, request: tonic::Request,