diff --git a/Cargo.lock b/Cargo.lock index 145a39cf8..63215ef4e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -58,9 +58,9 @@ dependencies = [ [[package]] name = "aligned" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "377e4c0ba83e4431b10df45c1d4666f178ea9c552cac93e60c3a88bf32785923" +checksum = "ee4508988c62edf04abd8d92897fca0c2995d907ce1dfeaf369dac3716a40685" dependencies = [ "as-slice", ] @@ -97,14 +97,14 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anndists" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4bbb2296f2525e53a52680f5c2df6de9a83b8a94cc22a8cc629301a27b5e0b7" +checksum = "8238f99889a837cd6641360f9f3ead18f70b07bf6ce1f04a319bc6bd8a2f48f1" dependencies = [ "anyhow", "cfg-if 1.0.4", "cpu-time", - "env_logger 0.11.8", + "env_logger", "lazy_static", "log", "num-traits", @@ -174,9 +174,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.100" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "approx" @@ -204,7 +204,7 @@ checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -255,9 +255,9 @@ dependencies = [ [[package]] name = "assert_cmd" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcbb6924530aa9e0432442af08bbcafdad182db80d2e560da42a6d442535bf85" +checksum = "9c5bcfa8749ac45dd12cb11055aeeb6b27a3895560d60d71e3c23bf979e60514" dependencies = [ "anstyle", "bstr", @@ -276,22 +276,21 @@ checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" [[package]] name = "async-compression" -version = "0.4.35" +version = "0.4.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07a926debf178f2d355197f9caddb08e54a9329d44748034bba349c5848cb519" +checksum = "d0f9ee0f6e02ffd7ad5816e9464499fba7b3effd01123b515c41d1697c43dad1" dependencies = [ "compression-codecs", "compression-core", - "futures-core", "pin-project-lite", "tokio", ] [[package]] name = "async-lock" -version = "3.4.1" +version = "3.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" +checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" dependencies = [ "event-listener", "event-listener-strategy", @@ -317,7 +316,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -328,7 +327,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -392,7 +391,7 @@ dependencies = [ "num-traits", "pastey", "rayon", - "thiserror 2.0.17", + "thiserror 2.0.18", "v_frame", "y4m", ] @@ -413,9 +412,9 @@ dependencies = [ [[package]] name = "avif-serialize" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47c8fbc0f831f4519fe8b810b6a7a91410ec83031b8233f730a0480029f6a23f" +checksum = "375082f007bd67184fb9c0374614b29f9aaa604ec301635f72338bb65386a53d" dependencies = [ "arrayvec", ] @@ -453,7 +452,7 @@ dependencies = [ "sync_wrapper 1.0.2", "tokio", "tokio-tungstenite", - "tower 0.5.2", + "tower 0.5.3", "tower-layer", "tower-service", "tracing", @@ -488,7 +487,7 @@ checksum = "57d123550fa8d071b7255cb0cc04dc302baa6c8c4a79f55701552684d8399bce" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -533,9 +532,9 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "smallvec 1.15.1", + "smallvec", "tokio", - "tower 0.5.2", + "tower 0.5.3", "url", ] @@ -563,9 +562,9 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "smallvec 1.15.1", + "smallvec", "tokio", - "tower 0.5.2", + "tower 0.5.3", "url", ] @@ -604,9 +603,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.8.1" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e050f626429857a27ddccb31e0aca21356bfa709c04041aefddac081a8f068a" +checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" [[package]] name = "bincode" @@ -644,7 +643,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" dependencies = [ "annotate-snippets", - "bitflags 2.10.0", + "bitflags 2.11.0", "cexpr", "clang-sys", "itertools 0.13.0", @@ -653,14 +652,14 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "bindgen_cuda" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f8489af5b7d17a81bffe37e0f4d6e1e4de87c87329d05447f22c35d95a1227d" +checksum = "282be55fb326843bb67cccceeeaf21c961ef303f60018f9a2ab69494dad8eaf9" dependencies = [ "glob", "num_cpus", @@ -711,9 +710,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" dependencies = [ "serde_core", ] @@ -741,15 +740,16 @@ dependencies = [ [[package]] name = "blake3" -version = "1.8.2" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" +checksum = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d" dependencies = [ "arrayref", "arrayvec", "cc", "cfg-if 1.0.4", "constant_time_eq", + "cpufeatures", ] [[package]] @@ -795,9 +795,9 @@ checksum = "f4ad8f11f288f48ca24471bbd51ac257aaeaaa07adae295591266b792902ae64" [[package]] name = "bumpalo" -version = "3.19.0" +version = "3.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" [[package]] name = "bytecheck" @@ -819,7 +819,7 @@ checksum = "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -830,9 +830,9 @@ checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" [[package]] name = "bytemuck" -version = "1.24.0" +version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" dependencies = [ "bytemuck_derive", ] @@ -845,7 +845,7 @@ checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -862,9 +862,9 @@ checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" [[package]] name = "bytes" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" [[package]] name = "bytesize" @@ -874,9 +874,9 @@ checksum = "2e93abca9e28e0a1b9877922aacb20576e05d4679ffa78c3d6dc22a26a216659" [[package]] name = "camino" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609" +checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48" dependencies = [ "serde_core", ] @@ -900,7 +900,7 @@ dependencies = [ "rand 0.9.2", "rand_distr 0.5.1", "rayon", - "safetensors", + "safetensors 0.4.5", "thiserror 1.0.69", "ug", "ug-cuda", @@ -942,7 +942,7 @@ dependencies = [ "metal 0.27.0", "num-traits", "rayon", - "safetensors", + "safetensors 0.4.5", "serde", "thiserror 1.0.69", ] @@ -1022,9 +1022,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.49" +version = "1.2.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90583009037521a116abf44494efecd645ba48b6622457080f080b85544e2215" +checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" dependencies = [ "find-msvc-tools", "jobserver", @@ -1077,9 +1077,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.42" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" dependencies = [ "iana-time-zone", "js-sys", @@ -1129,9 +1129,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.53" +version = "4.5.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8" +checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a" dependencies = [ "clap_builder", "clap_derive", @@ -1150,9 +1150,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.53" +version = "4.5.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00" +checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876" dependencies = [ "anstream", "anstyle", @@ -1165,30 +1165,30 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.5.61" +version = "4.5.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39615915e2ece2550c0149addac32fb5bd312c657f43845bb9088cb9c8a7c992" +checksum = "c757a3b7e39161a4e56f9365141ada2a6c915a8622c408ab6bb4b5d047371031" dependencies = [ "clap", ] [[package]] name = "clap_derive" -version = "4.5.49" +version = "4.5.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" +checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "clap_lex" -version = "0.7.6" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" +checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" [[package]] name = "clipboard-win" @@ -1220,35 +1220,36 @@ dependencies = [ [[package]] name = "cognitum-gate-kernel" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad608b706e3ffa448744047059858875c8cea5cebbec7fa3dc50ca79e7b0a4ba" +version = "0.1.1" dependencies = [ + "criterion 0.5.1", "libm", - "ruvector-mincut 0.1.30", + "proptest", + "ruvector-mincut 2.0.5", ] [[package]] name = "cognitum-gate-kernel" version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c3fbcc49a3b67f7edb3c987b15f70dee06eebf072bd3fb679b8077983a8d55d" dependencies = [ - "criterion 0.5.1", "libm", - "proptest", "ruvector-mincut 2.0.4", ] [[package]] name = "cognitum-gate-tilezero" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e950a2632e3954a0f76e20682df05358c5a0a38c9f86247057d78c1b00543ab" +version = "0.1.1" dependencies = [ "base64 0.22.1", "blake3", + "criterion 0.5.1", "ed25519-dalek", "hex", + "proptest", "rand 0.8.5", + "ruvector-mincut 0.1.30", "serde", "serde_json", "thiserror 1.0.69", @@ -1259,15 +1260,14 @@ dependencies = [ [[package]] name = "cognitum-gate-tilezero" version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da5b7ca90d479824a5c134ba7eae332a24d43c28d29884bf662c52fa5416068a" dependencies = [ "base64 0.22.1", "blake3", - "criterion 0.5.1", "ed25519-dalek", "hex", - "proptest", "rand 0.8.5", - "ruvector-mincut 0.1.30", "serde", "serde_json", "thiserror 1.0.69", @@ -1309,9 +1309,9 @@ dependencies = [ [[package]] name = "comfy-table" -version = "7.2.1" +version = "7.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b03b7db8e0b4b2fdad6c551e634134e99ec000e5c8c3b6856c65e8bbaded7a3b" +checksum = "958c5d6ecf1f214b4c2bbbbf6ab9523a864bd136dcf71a7e8904799acfe1ad47" dependencies = [ "crossterm", "unicode-segmentation", @@ -1335,9 +1335,9 @@ dependencies = [ [[package]] name = "compression-codecs" -version = "0.4.34" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34a3cbbb8b6eca96f3a5c4bf6938d5b27ced3675d69f95bb51948722870bc323" +checksum = "eb7b51a7d9c967fc26773061ba86150f19c50c0d65c887cb1fbe295fd16619b7" dependencies = [ "compression-core", "flate2", @@ -1390,9 +1390,9 @@ checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "constant_time_eq" -version = "0.3.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" [[package]] name = "convert_case" @@ -1423,6 +1423,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -1436,7 +1446,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" dependencies = [ "bitflags 1.3.2", - "core-foundation", + "core-foundation 0.9.4", "core-graphics-types", "foreign-types 0.5.0", "libc", @@ -1449,7 +1459,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" dependencies = [ "bitflags 1.3.2", - "core-foundation", + "core-foundation 0.9.4", "libc", ] @@ -1459,7 +1469,7 @@ version = "20.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9d2790b5c08465d49f8dc05c8bcae9fea467855947db39b0f8145c091aaced5" dependencies = [ - "core-foundation", + "core-foundation 0.9.4", "core-graphics", "foreign-types 0.5.0", "libc", @@ -1487,9 +1497,9 @@ dependencies = [ [[package]] name = "cpp_demangle" -version = "0.4.5" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2bb79cb74d735044c972aae58ed0aaa9a837e85b01106a54c39e42e97f62253" +checksum = "0667304c32ea56cb4cd6d2d7c0cfe9a2f8041229db8c033af7f8d69492429def" dependencies = [ "cfg-if 1.0.4", ] @@ -1669,7 +1679,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "crossterm_winapi", "document-features", "parking_lot 0.12.5", @@ -1730,7 +1740,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" dependencies = [ "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -1778,7 +1788,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -1802,7 +1812,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -1813,7 +1823,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -1854,9 +1864,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" +checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" [[package]] name = "deadpool" @@ -1878,7 +1888,7 @@ checksum = "3d697d376cbfa018c23eb4caab1fd1883dd9c906a8c034e8d9a3cb06a7e0bef9" dependencies = [ "async-trait", "deadpool", - "getrandom 0.2.16", + "getrandom 0.2.17", "tokio", "tokio-postgres", "tracing", @@ -1915,9 +1925,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.5.5" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" dependencies = [ "powerfmt", ] @@ -1941,7 +1951,7 @@ checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -1962,7 +1972,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -1972,7 +1982,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -2077,11 +2087,11 @@ dependencies = [ [[package]] name = "dispatch2" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" +checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "block2", "libc", "objc2", @@ -2095,14 +2105,14 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "dlib" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" +checksum = "ab8ecd87370524b461f8557c119c405552c396ed91fc0a8eec68679eab26f94a" dependencies = [ "libloading 0.8.9", ] @@ -2237,7 +2247,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -2257,24 +2267,14 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "env_filter" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bf3c259d255ca70051b30e2e95b5446cdb8949ac4cd22c0d7fd634d89f568e2" -dependencies = [ - "log", - "regex", -] - -[[package]] -name = "env_logger" -version = "0.8.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3" +checksum = "7a1c3cc8e57274ec99de65301228b537f1e4eedc1b8e0f9411c6caac8ae7308f" dependencies = [ "log", "regex", @@ -2282,9 +2282,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" +checksum = "b2daee4ea451f429a58296525ddf28b45a3b64f1acf6587e2067437bb11e218d" dependencies = [ "anstream", "anstyle", @@ -2310,7 +2310,7 @@ checksum = "44f23cf4b44bfce11a86ace86f8a73ffdec849c9fd00a386a53d278bd9e81fb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -2384,7 +2384,7 @@ dependencies = [ "lebe", "miniz_oxide", "rayon-core", - "smallvec 1.15.1", + "smallvec", "zune-inflate", ] @@ -2429,15 +2429,17 @@ dependencies = [ [[package]] name = "fastembed" -version = "5.4.0" +version = "5.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0d719825156b62586040fd0e5653a4f7bc0ad9caf6c7ec38cb18f1a08ee0384" +checksum = "b4339d45a80579ab8305616a501eacdbf18fb0f7def7fa6e4c0b75941416d5b0" dependencies = [ "anyhow", "hf-hub 0.4.3", "image 0.25.9", - "ndarray 0.16.1", + "ndarray 0.17.2", "ort", + "safetensors 0.7.0", + "serde", "serde_json", "tokenizers 0.22.2", ] @@ -2465,7 +2467,7 @@ checksum = "a0aca10fb742cb43f9e7bb8467c91aa9bcb8e3ffbc6a6f7389bb93ffc920577d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -2494,23 +2496,11 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" -[[package]] -name = "filetime" -version = "0.2.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" -dependencies = [ - "cfg-if 1.0.4", - "libc", - "libredox", - "windows-sys 0.60.2", -] - [[package]] name = "find-msvc-tools" -version = "0.1.5" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" [[package]] name = "findshlibs" @@ -2532,9 +2522,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.1.5" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" dependencies = [ "crc32fast", "miniz_oxide", @@ -2590,9 +2580,9 @@ version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c7e611d49285d4c4b2e1727b72cf05353558885cc5252f93707b845dfcaf3d3" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "byteorder", - "core-foundation", + "core-foundation 0.9.4", "core-graphics", "core-text", "dirs 6.0.0", @@ -2636,7 +2626,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -2729,9 +2719,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" dependencies = [ "futures-channel", "futures-core", @@ -2744,9 +2734,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" dependencies = [ "futures-core", "futures-sink", @@ -2754,15 +2744,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" [[package]] name = "futures-executor" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" dependencies = [ "futures-core", "futures-task", @@ -2782,32 +2772,32 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" [[package]] name = "futures-macro" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "futures-sink" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" +checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" [[package]] name = "futures-task" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" [[package]] name = "futures-timer" @@ -2817,9 +2807,9 @@ checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" dependencies = [ "futures-channel", "futures-core", @@ -2829,7 +2819,6 @@ dependencies = [ "futures-task", "memchr", "pin-project-lite", - "pin-utils", "slab", ] @@ -3082,14 +3071,14 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ "cfg-if 1.0.4", "js-sys", "libc", - "wasi", + "wasi 0.11.1+wasi-snapshot-preview1", "wasm-bindgen", ] @@ -3107,6 +3096,20 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "getrandom" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" +dependencies = [ + "cfg-if 1.0.4", + "libc", + "r-efi", + "rand_core 0.10.0", + "wasip2", + "wasip3", +] + [[package]] name = "gif" version = "0.12.0" @@ -3283,7 +3286,7 @@ dependencies = [ "portable-atomic", "quanta", "rand 0.8.5", - "smallvec 1.15.1", + "smallvec", "spinning_top", ] @@ -3293,7 +3296,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "gpu-alloc-types", ] @@ -3303,7 +3306,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", ] [[package]] @@ -3324,7 +3327,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b89c83349105e3732062a895becfc71a8f921bb71ecbbdd8ff99263e3b53a0ca" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "gpu-descriptor-types", "hashbrown 0.15.5", ] @@ -3335,7 +3338,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", ] [[package]] @@ -3359,9 +3362,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" dependencies = [ "atomic-waker", "bytes", @@ -3442,6 +3445,8 @@ dependencies = [ "allocator-api2", "equivalent", "foldhash 0.2.0", + "serde", + "serde_core", ] [[package]] @@ -3609,10 +3614,10 @@ dependencies = [ "log", "native-tls", "rand 0.9.2", - "reqwest 0.12.25", + "reqwest 0.12.28", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "ureq 2.12.1", "windows-sys 0.60.2", ] @@ -3635,6 +3640,12 @@ dependencies = [ "digest", ] +[[package]] +name = "hmac-sha256" +version = "1.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec9d92d097f4749b64e8cc33d924d9f40a2d4eb91402b458014b781f5733d60f" + [[package]] name = "hnsw_rs" version = "0.3.3" @@ -3644,7 +3655,7 @@ dependencies = [ "bincode 1.3.3", "cfg-if 1.0.4", "cpu-time", - "env_logger 0.11.8", + "env_logger", "hashbrown 0.15.5", "indexmap 2.12.1", "lazy_static", @@ -3774,7 +3785,7 @@ dependencies = [ "bytes", "futures-channel", "futures-core", - "h2 0.4.12", + "h2 0.4.13", "http 1.4.0", "http-body 1.0.1", "httparse", @@ -3782,7 +3793,7 @@ dependencies = [ "itoa", "pin-project-lite", "pin-utils", - "smallvec 1.15.1", + "smallvec", "tokio", "want", ] @@ -3810,7 +3821,7 @@ dependencies = [ "http 1.4.0", "hyper 1.8.1", "hyper-util", - "rustls 0.23.35", + "rustls 0.23.37", "rustls-pki-types", "tokio", "tokio-rustls 0.26.4", @@ -3861,14 +3872,13 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ "base64 0.22.1", "bytes", "futures-channel", - "futures-core", "futures-util", "http 1.4.0", "http-body 1.0.1", @@ -3877,8 +3887,8 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.1", - "system-configuration 0.6.1", + "socket2 0.6.2", + "system-configuration 0.7.0", "tokio", "tower-layer", "tower-service", @@ -3888,9 +3898,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.64" +version = "0.1.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -3946,7 +3956,7 @@ dependencies = [ "icu_normalizer_data", "icu_properties", "icu_provider", - "smallvec 1.15.1", + "smallvec", "zerovec", ] @@ -3958,9 +3968,9 @@ checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" [[package]] name = "icu_properties" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99" +checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" dependencies = [ "icu_collections", "icu_locale_core", @@ -3972,9 +3982,9 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899" +checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" [[package]] name = "icu_provider" @@ -3991,6 +4001,12 @@ dependencies = [ "zerovec", ] +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + [[package]] name = "ident_case" version = "1.0.1" @@ -4014,7 +4030,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", - "smallvec 1.15.1", + "smallvec", "utf8_iter", ] @@ -4056,14 +4072,14 @@ dependencies = [ "image-webp", "moxcms", "num-traits", - "png 0.18.0", + "png 0.18.1", "qoi", "ravif", "rayon", "rgb", "tiff", - "zune-core 0.5.0", - "zune-jpeg 0.5.6", + "zune-core 0.5.1", + "zune-jpeg 0.5.12", ] [[package]] @@ -4084,7 +4100,7 @@ checksum = "2393fb7808960751a52e8a154f67e7dd3f8a2ef9bd80d1553078a7b4e8ed3f0d" dependencies = [ "ab_glyph", "approx", - "getrandom 0.2.16", + "getrandom 0.2.17", "image 0.25.9", "itertools 0.12.1", "nalgebra 0.32.6", @@ -4124,6 +4140,8 @@ checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" dependencies = [ "equivalent", "hashbrown 0.16.1", + "serde", + "serde_core", ] [[package]] @@ -4174,7 +4192,7 @@ checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -4185,9 +4203,9 @@ checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "iri-string" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397" +checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" dependencies = [ "memchr", "serde", @@ -4263,9 +4281,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.15" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" [[package]] name = "jemalloc-ctl" @@ -4290,9 +4308,9 @@ dependencies = [ [[package]] name = "jiff" -version = "0.2.16" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49cce2b81f2098e7e3efc35bc2e0a6b7abec9d34128283d7a26fa8f32a6dbb35" +checksum = "b3e3d65f018c6ae946ab16e80944b97096ed73c35b221d1c478a6c81d8f57940" dependencies = [ "jiff-static", "log", @@ -4303,13 +4321,13 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.16" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "980af8b43c3ad5d8d349ace167ec8170839f753a42d233ba19e08afe1850fa69" +checksum = "a17c2b211d863c7fde02cbea8a3c1a439b98e109286554f2860bdded7ff83818" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -4336,9 +4354,9 @@ checksum = "00810f1d8b74be64b13dbf3db89ac67740615d6c891f0e7b6179326533011a07" [[package]] name = "js-sys" -version = "0.3.83" +version = "0.3.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" +checksum = "14dc6f6450b3f6d4ed5b16327f38fed626d375a886159ca555bd7822c0c3a5a6" dependencies = [ "once_cell", "wasm-bindgen", @@ -4394,6 +4412,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3b6dcd7e59353c45bde9490cac01423f16eb535da84f3be277c08087842778b" +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + [[package]] name = "lebe" version = "0.5.3" @@ -4402,15 +4426,15 @@ checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8" [[package]] name = "libc" -version = "0.2.178" +version = "0.2.182" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" +checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" [[package]] name = "libfuzzer-sys" -version = "0.4.10" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5037190e1f70cbeef565bd267599242926f724d3b8a9f510fd7e0b540cfa4404" +checksum = "f12a681b7dd8ce12bff52488013ba614b869148d54dd79836ab85aafdd53f08d" dependencies = [ "arbitrary", "cc", @@ -4436,21 +4460,31 @@ dependencies = [ "windows-link", ] +[[package]] +name = "libloading" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "754ca22de805bb5744484a5b151a9e1a8e837d5dc232c2d7d8c2e3492edc8b60" +dependencies = [ + "cfg-if 1.0.4", + "windows-link", +] + [[package]] name = "libm" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libredox" -version = "0.1.10" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" +checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "libc", - "redox_syscall 0.5.18", + "redox_syscall 0.7.2", ] [[package]] @@ -4466,9 +4500,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litemap" @@ -4506,15 +4540,6 @@ dependencies = [ "imgref", ] -[[package]] -name = "lru" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" -dependencies = [ - "hashbrown 0.15.5", -] - [[package]] name = "lru" version = "0.16.3" @@ -4552,6 +4577,12 @@ dependencies = [ "twox-hash", ] +[[package]] +name = "lzma-rust2" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1670343e58806300d87950e3401e820b519b9384281bbabfb15e3636689ffd69" + [[package]] name = "mach2" version = "0.4.3" @@ -4656,15 +4687,15 @@ checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" [[package]] name = "memchr" -version = "2.7.6" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" [[package]] name = "memmap2" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744133e4a0e0a658e1374cf3bf8e415c4052a15a111acd372764c55b4177d490" +checksum = "714098028fe011992e1c3962653c96b2d578c4b4bce9036e15ff220319b1e0e3" dependencies = [ "libc", "stable_deref_trait", @@ -4691,7 +4722,7 @@ version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "block", "core-graphics-types", "foreign-types 0.5.0", @@ -4706,7 +4737,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "block", "core-graphics-types", "foreign-types 0.5.0", @@ -4764,7 +4795,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" dependencies = [ "libc", - "wasi", + "wasi 0.11.1+wasi-snapshot-preview1", "windows-sys 0.61.2", ] @@ -4808,14 +4839,14 @@ dependencies = [ "cfg-if 1.0.4", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "moka" -version = "0.12.11" +version = "0.12.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8261cd88c312e0004c1d51baad2980c66528dfdb2bee62003e643a4d8f86b077" +checksum = "b4ac832c50ced444ef6be0767a008b02c106a909ba79d1d830501e94b96f6b7e" dependencies = [ "async-lock", "crossbeam-channel", @@ -4826,8 +4857,7 @@ dependencies = [ "futures-util", "parking_lot 0.12.5", "portable-atomic", - "rustc_version 0.4.1", - "smallvec 1.15.1", + "smallvec", "tagptr", "uuid", ] @@ -4851,14 +4881,14 @@ checksum = "e4db6d5580af57bf992f59068d4ea26fd518574ff48d7639b255a36f9de6e7e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "moxcms" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80986bbbcf925ebd3be54c26613d861255284584501595cf418320c078945608" +checksum = "ac9557c559cd6fc9867e122e20d2cbefc9ca29d80d027a8e39310920ed2f0a97" dependencies = [ "num-traits", "pxfm", @@ -4898,7 +4928,7 @@ checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -4909,7 +4939,7 @@ checksum = "364f94bc34f61332abebe8cad6f6cd82a5b65cff22c828d05d0968911462ca4f" dependencies = [ "arrayvec", "bit-set 0.8.0", - "bitflags 2.10.0", + "bitflags 2.11.0", "cfg_aliases 0.1.1", "codespan-reporting", "hexf-parse", @@ -4993,7 +5023,7 @@ checksum = "254a5372af8fc138e36684761d3c0cdb758a4410e938babcff1c860ce14ddbfc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -5004,7 +5034,7 @@ checksum = "973e7178a678cfd059ccec50887658d482ce16b0aa9da3888ddeab5cd5eb4889" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -5013,7 +5043,7 @@ version = "2.16.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55740c4ae1d8696773c78fdafd5d0e5fe9bc9f1b071c7ba493ba5c413a9184f3" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "ctor", "napi-derive", "napi-sys", @@ -5040,7 +5070,7 @@ dependencies = [ "napi-derive-backend", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -5055,7 +5085,7 @@ dependencies = [ "quote", "regex", "semver 1.0.27", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -5069,9 +5099,9 @@ dependencies = [ [[package]] name = "native-tls" -version = "0.2.14" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" +checksum = "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2" dependencies = [ "libc", "log", @@ -5163,7 +5193,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" dependencies = [ - "smallvec 1.15.1", + "smallvec", ] [[package]] @@ -5185,7 +5215,7 @@ version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "cfg-if 1.0.4", "cfg_aliases 0.1.1", "libc", @@ -5197,7 +5227,7 @@ version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "cfg-if 1.0.4", "cfg_aliases 0.2.1", "libc", @@ -5248,7 +5278,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -5271,9 +5301,9 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" [[package]] name = "ntapi" -version = "0.4.1" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" +checksum = "c3b335231dfd352ffb0f8017f3b6027a4917f7df785ea2143d8af2adc66980ae" dependencies = [ "winapi", ] @@ -5348,7 +5378,7 @@ dependencies = [ "num-iter", "num-traits", "rand 0.8.5", - "smallvec 1.15.1", + "smallvec", "zeroize", ] @@ -5374,9 +5404,9 @@ dependencies = [ [[package]] name = "num-conv" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" [[package]] name = "num-derive" @@ -5386,7 +5416,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -5481,7 +5511,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -5502,9 +5532,9 @@ dependencies = [ [[package]] name = "objc2" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" +checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" dependencies = [ "objc2-encode", ] @@ -5515,7 +5545,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "dispatch2", "objc2", ] @@ -5526,7 +5556,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "dispatch2", "objc2", "objc2-core-foundation", @@ -5539,7 +5569,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "201b055e6acfa0f9f15568255d3f03ce2b54bc86d1814442dc69138e36813e18" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "block2", "objc2", "objc2-core-graphics", @@ -5555,7 +5585,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "objc2", "objc2-core-foundation", "objc2-core-graphics", @@ -5574,7 +5604,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "block2", "libc", "objc2", @@ -5598,7 +5628,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "objc2", "objc2-core-foundation", ] @@ -5609,11 +5639,20 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0125f776a10d00af4152d74616409f0d4a2053a6f57fa5b7d6aa2854ac04794" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "objc2", "objc2-foundation", ] +[[package]] +name = "objc2-system-configuration" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7216bd11cbda54ccabcab84d523dc93b858ec75ecfb3a7d89513fa22464da396" +dependencies = [ + "objc2-core-foundation", +] + [[package]] name = "objc_exception" version = "0.1.2" @@ -5650,7 +5689,7 @@ version = "6.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "336b9c63443aceef14bea841b899035ae3abe89b7c486aaf4c5bd8aafedac3f0" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "libc", "once_cell", "onig_sys", @@ -5678,7 +5717,7 @@ version = "0.10.75" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08838db121398ad17ab8531ce9de97b244589089e290a384c900cb9ff7434328" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "cfg-if 1.0.4", "foreign-types 0.3.2", "libc", @@ -5695,14 +5734,14 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "openssl-probe" -version = "0.1.6" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" +checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" [[package]] name = "openssl-sys" @@ -5733,28 +5772,27 @@ dependencies = [ [[package]] name = "ort" -version = "2.0.0-rc.10" +version = "2.0.0-rc.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa7e49bd669d32d7bc2a15ec540a527e7764aec722a45467814005725bcd721" +checksum = "4a5df903c0d2c07b56950f1058104ab0c8557159f2741782223704de9be73c3c" dependencies = [ - "libloading 0.8.9", - "ndarray 0.16.1", + "libloading 0.9.0", + "ndarray 0.17.2", "ort-sys", - "smallvec 2.0.0-alpha.10", + "smallvec", "tracing", + "ureq 3.2.0", ] [[package]] name = "ort-sys" -version = "2.0.0-rc.10" +version = "2.0.0-rc.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2aba9f5c7c479925205799216e7e5d07cc1d4fa76ea8058c60a9a30f6a4e890" +checksum = "06503bb33f294c5f1ba484011e053bfa6ae227074bdb841e9863492dc5960d4b" dependencies = [ - "flate2", - "pkg-config", - "sha2", - "tar", - "ureq 3.1.4", + "hmac-sha256", + "lzma-rust2", + "ureq 3.2.0", ] [[package]] @@ -5765,13 +5803,13 @@ dependencies = [ "chrono", "cognitum-gate-kernel 0.1.1", "console_error_panic_hook", - "getrandom 0.2.16", + "getrandom 0.2.17", "js-sys", "rand 0.8.5", "ruqu-algorithms", "ruvector-attention", "ruvector-cluster", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "ruvector-delta-core", "ruvector-filter", "ruvector-gnn", @@ -5780,9 +5818,9 @@ dependencies = [ "serde", "serde-wasm-bindgen", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", - "tower 0.5.2", + "tower 0.5.3", "tower-http 0.6.8", "tracing", "tracing-subscriber", @@ -5811,9 +5849,9 @@ dependencies = [ [[package]] name = "owo-colors" -version = "4.2.3" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52" +checksum = "d211803b9b6b570f68772237e415a029d5a50c65d382910b879fb19d3271f94d" dependencies = [ "supports-color 2.1.0", "supports-color 3.0.2", @@ -5877,7 +5915,7 @@ dependencies = [ "instant", "libc", "redox_syscall 0.2.16", - "smallvec 1.15.1", + "smallvec", "winapi", ] @@ -5890,7 +5928,7 @@ dependencies = [ "cfg-if 1.0.4", "libc", "redox_syscall 0.5.18", - "smallvec 1.15.1", + "smallvec", "windows-link", ] @@ -5963,9 +6001,9 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.4" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbcfd20a6d4eeba40179f05735784ad32bdaef05ce8e8af05f180d45bb3e7e22" +checksum = "e0848c601009d37dfa3430c4666e147e49cdcf1b92ecd3e63657d8a5f19da662" dependencies = [ "memchr", "ucd-trie", @@ -5973,9 +6011,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.8.4" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51f72981ade67b1ca6adc26ec221be9f463f2b5839c7508998daa17c23d94d7f" +checksum = "11f486f1ea21e6c10ed15d5a7c77165d0ee443402f0780849d1768e7d9d6fe77" dependencies = [ "pest", "pest_generator", @@ -5983,22 +6021,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.8.4" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee9efd8cdb50d719a80088b76f81aec7c41ed6d522ee750178f83883d271625" +checksum = "8040c4647b13b210a963c1ed407c1ff4fdfa01c31d6d2a098218702e6664f94f" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "pest_meta" -version = "2.8.4" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf1d70880e76bdc13ba52eafa6239ce793d85c8e43896507e43dd8984ff05b82" +checksum = "89815c69d36021a140146f26659a81d6c2afa33d216d736dd4be5381a7362220" dependencies = [ "pest", "sha2", @@ -6021,7 +6059,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "227bf7e162ce710994306a97bc56bb3fe305f21120ab6692e2151c48416f5c0d" dependencies = [ "atomic-traits", - "bitflags 2.10.0", + "bitflags 2.11.0", "bitvec", "enum-map", "heapless", @@ -6052,7 +6090,7 @@ dependencies = [ "proc-macro2", "quote", "shlex", - "syn 2.0.111", + "syn 2.0.117", "walkdir", ] @@ -6065,7 +6103,7 @@ dependencies = [ "pgrx-sql-entity-graph", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -6112,7 +6150,7 @@ dependencies = [ "petgraph", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", "thiserror 1.0.69", "unescape", ] @@ -6177,7 +6215,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -6280,11 +6318,11 @@ dependencies = [ [[package]] name = "png" -version = "0.18.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0" +checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "crc32fast", "fdeflate", "flate2", @@ -6299,15 +6337,15 @@ checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3" [[package]] name = "portable-atomic" -version = "1.11.1" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" +checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "portable-atomic-util" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +checksum = "7a9db96d7fa8782dd8c15ce32ffe8680bbd1e978a43bf51a34d39483540495f5" dependencies = [ "portable-atomic", ] @@ -6328,9 +6366,9 @@ dependencies = [ [[package]] name = "postgres-protocol" -version = "0.6.9" +version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbef655056b916eb868048276cfd5d6a7dea4f81560dfd047f97c8c6fe3fcfd4" +checksum = "3ee9dd5fe15055d2b6806f4736aa0c9637217074e224bbec46d4041b91bb9491" dependencies = [ "base64 0.22.1", "byteorder", @@ -6346,9 +6384,9 @@ dependencies = [ [[package]] name = "postgres-types" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef4605b7c057056dd35baeb6ac0c0338e4975b1f2bef0f65da953285eb007095" +checksum = "54b858f82211e84682fecd373f68e1ceae642d8d751a1ebd13f33de6257b3e20" dependencies = [ "bytes", "fallible-iterator 0.2.0", @@ -6386,7 +6424,7 @@ dependencies = [ "nix 0.26.4", "once_cell", "parking_lot 0.12.5", - "smallvec 1.15.1", + "smallvec", "symbolic-demangle", "tempfile", "thiserror 1.0.69", @@ -6447,9 +6485,9 @@ checksum = "94e851c7654eed9e68d7d27164c454961a616cf8c203d500607ef22c737b51bb" [[package]] name = "predicates" -version = "3.1.3" +version = "3.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5d19ee57562043d37e82899fade9a22ebab7be9cef5026b07fda9cdd4293573" +checksum = "ada8f2932f28a27ee7b70dd6c1c39ea0675c55a36879ab92f3a715eaa1e63cfe" dependencies = [ "anstyle", "difflib", @@ -6461,15 +6499,15 @@ dependencies = [ [[package]] name = "predicates-core" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "727e462b119fe9c93fd0eb1429a5f7647394014cf3c04ab2c0350eeb09095ffa" +checksum = "cad38746f3166b4031b1a0d39ad9f954dd291e7854fcc0eed52ee41a0b50d144" [[package]] name = "predicates-tree" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72dd2d6d381dfb73a193c7fca536518d7caee39fc8503f74e7dc0be0531b425c" +checksum = "d0de1b847b39c8131db0467e9df1ff60e6d0562ab8e9a16e568ad0fdb372e2f2" dependencies = [ "predicates-core", "termtree", @@ -6491,6 +6529,16 @@ dependencies = [ "yansi", ] +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn 2.0.117", +] + [[package]] name = "prettytable-rs" version = "0.10.0" @@ -6516,7 +6564,7 @@ dependencies = [ "blake3", "bytemuck", "chrono", - "cognitum-gate-kernel 0.1.0", + "cognitum-gate-kernel 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "criterion 0.5.1", "crossbeam", "dashmap 6.1.0", @@ -6539,20 +6587,20 @@ dependencies = [ "rkyv", "roaring", "ruvector-attention", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "ruvector-gnn", "ruvector-graph", "ruvector-hyperbolic-hnsw", - "ruvector-mincut 2.0.4", + "ruvector-mincut 2.0.5", "ruvector-nervous-system", "ruvector-raft", - "ruvector-sona 0.1.4", - "ruvllm 2.0.1", + "ruvector-sona 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "ruvllm 2.0.4", "serde", "serde_json", "sqlx", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", "tracing-subscriber", @@ -6617,9 +6665,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.103" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] @@ -6640,7 +6688,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" dependencies = [ "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -6660,13 +6708,13 @@ dependencies = [ [[package]] name = "proptest" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee689443a2bd0a16ab0348b52ee43e3b2d1b1f931c8aa5c9f8de4c86fbe8c40" +checksum = "37566cb3fdacef14c0737f9546df7cfeadbfbc9fef10991038bf5015d0c80532" dependencies = [ "bit-set 0.8.0", "bit-vec 0.8.0", - "bitflags 2.10.0", + "bitflags 2.11.0", "num-traits", "rand 0.9.2", "rand_chacha 0.9.0", @@ -6697,7 +6745,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -6723,7 +6771,7 @@ checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -6793,7 +6841,7 @@ dependencies = [ "libc", "once_cell", "raw-cpuid 11.6.0", - "wasi", + "wasi 0.11.1+wasi-snapshot-preview1", "web-sys", "winapi", ] @@ -6821,31 +6869,31 @@ dependencies = [ [[package]] name = "quickcheck" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6" +checksum = "95c589f335db0f6aaa168a7cd27b1fc6920f5e1470c804f814d9cd6e62a0f70b" dependencies = [ - "env_logger 0.8.4", + "env_logger", "log", - "rand 0.8.5", + "rand 0.10.0", ] [[package]] name = "quickcheck_macros" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f71ee38b42f8459a88d3362be6f9b841ad2d5421844f61eb1c59c11bff3ac14a" +checksum = "a9a28b8493dd664c8b171dd944da82d933f7d456b829bfb236738e1fe06c5ba4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "quote" -version = "1.0.42" +version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" +checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" dependencies = [ "proc-macro2", ] @@ -6918,7 +6966,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha 0.9.0", - "rand_core 0.9.3", + "rand_core 0.9.5", +] + +[[package]] +name = "rand" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc266eb313df6c5c09c1c7b1fbe2510961e5bcd3add930c1e31f7ed9da0feff8" +dependencies = [ + "getrandom 0.4.1", + "rand_core 0.10.0", ] [[package]] @@ -6948,7 +7006,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.3", + "rand_core 0.9.5", ] [[package]] @@ -6972,18 +7030,24 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", ] [[package]] name = "rand_core" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" dependencies = [ "getrandom 0.3.4", ] +[[package]] +name = "rand_core" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c8d0fd677905edcbeedbf2edb6494d676f0e98d54d5cf9bda0b061cb8fb8aba" + [[package]] name = "rand_distr" version = "0.4.3" @@ -7081,7 +7145,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" dependencies = [ - "rand_core 0.9.3", + "rand_core 0.9.5", ] [[package]] @@ -7129,7 +7193,7 @@ dependencies = [ "rand 0.9.2", "rand_chacha 0.9.0", "simd_helpers", - "thiserror 2.0.17", + "thiserror 2.0.18", "v_frame", "wasm-bindgen", ] @@ -7164,7 +7228,7 @@ version = "11.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", ] [[package]] @@ -7262,7 +7326,16 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", +] + +[[package]] +name = "redox_syscall" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d94dd2f7cd932d4dc02cc8b2b50dfd38bd079a4e5d79198b99743d7fcf9a4b4" +dependencies = [ + "bitflags 2.11.0", ] [[package]] @@ -7271,7 +7344,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", "libredox", "thiserror 1.0.69", ] @@ -7282,9 +7355,9 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", "libredox", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -7299,10 +7372,10 @@ dependencies = [ "ndarray 0.16.1", "rand 0.8.5", "rand_distr 0.4.3", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", "tracing-subscriber", @@ -7311,9 +7384,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.12.2" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" dependencies = [ "aho-corasick", "memchr", @@ -7323,9 +7396,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" dependencies = [ "aho-corasick", "memchr", @@ -7334,9 +7407,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "rend" @@ -7399,9 +7472,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.25" +version = "0.12.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6eff9328d40131d43bd911d42d79eb6a47312002a4daefc9e37f17e74a7701a" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" dependencies = [ "base64 0.22.1", "bytes", @@ -7409,7 +7482,7 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.4.12", + "h2 0.4.13", "http 1.4.0", "http-body 1.0.1", "http-body-util", @@ -7432,7 +7505,7 @@ dependencies = [ "tokio", "tokio-native-tls", "tokio-util", - "tower 0.5.2", + "tower 0.5.3", "tower-http 0.6.8", "tower-service", "url", @@ -7448,14 +7521,14 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21918d6644020c6f6ef1993242989bf6d4952d2e025617744f184c02df51c356" dependencies = [ - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "rgb" -version = "0.8.52" +version = "0.8.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c6a884d2998352bb4daf0183589aec883f16a6da1f4dde84d8e2e9a5409a1ce" +checksum = "47b34b781b31e5d73e9fbc8689c70551fd1ade9a19e3e28cfec8580a79290cc4" dependencies = [ "bytemuck", ] @@ -7468,7 +7541,7 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if 1.0.4", - "getrandom 0.2.16", + "getrandom 0.2.17", "libc", "untrusted", "windows-sys 0.52.0", @@ -7476,13 +7549,13 @@ dependencies = [ [[package]] name = "rkyv" -version = "0.8.12" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35a640b26f007713818e9a9b65d34da1cf58538207b052916a83d80e43f3ffa4" +checksum = "1a30e631b7f4a03dee9056b8ef6982e8ba371dd5bedb74d3ec86df4499132c70" dependencies = [ "bytecheck", "bytes", - "hashbrown 0.15.5", + "hashbrown 0.16.1", "indexmap 2.12.1", "munge", "ptr_meta", @@ -7495,13 +7568,13 @@ dependencies = [ [[package]] name = "rkyv_derive" -version = "0.8.12" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd83f5f173ff41e00337d97f6572e416d022ef8a19f371817259ae960324c482" +checksum = "8100bb34c0a1d0f907143db3149e6b4eea3c33b9ee8b189720168e818303986f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -7536,10 +7609,10 @@ dependencies = [ [[package]] name = "ruqu" -version = "2.0.4" +version = "2.0.5" dependencies = [ "blake3", - "cognitum-gate-tilezero 0.1.0", + "cognitum-gate-tilezero 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "crc32fast", "criterion 0.5.1", "ed25519-dalek", @@ -7553,7 +7626,7 @@ dependencies = [ "serde", "serde_json", "subtle", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", "tracing-subscriber", @@ -7569,7 +7642,7 @@ dependencies = [ "rand 0.8.5", "ruqu-core", "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", ] @@ -7583,7 +7656,7 @@ dependencies = [ "rand 0.8.5", "rayon", "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", ] @@ -7595,14 +7668,14 @@ dependencies = [ "rand 0.8.5", "ruqu-core", "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "ruqu-wasm" version = "2.0.5" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", "js-sys", "ruqu-algorithms", "ruqu-core", @@ -7619,12 +7692,12 @@ version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7753b721174eb8ff87a9a0e799e2d7bc3749323e773db92e0984debb00019d6e" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "fallible-iterator 0.3.0", "fallible-streaming-iterator", "hashlink 0.9.1", "libsqlite3-sys", - "smallvec 1.15.1", + "smallvec", ] [[package]] @@ -7645,9 +7718,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" +checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d" [[package]] name = "rustc-hash" @@ -7681,11 +7754,11 @@ dependencies = [ [[package]] name = "rustix" -version = "1.1.2" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "errno", "libc", "linux-raw-sys", @@ -7706,15 +7779,15 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.35" +version = "0.23.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f" +checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" dependencies = [ "log", "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.103.8", + "rustls-webpki 0.103.9", "subtle", "zeroize", ] @@ -7730,9 +7803,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.13.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "708c0f9d5f54ba0272468c1d306a52c495b31fa155e91bc25371e6df7996908c" +checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" dependencies = [ "zeroize", ] @@ -7749,9 +7822,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.8" +version = "0.103.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" +checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" dependencies = [ "ring", "rustls-pki-types", @@ -7792,7 +7865,7 @@ version = "14.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7803e8936da37efd9b6d4478277f4b2b9bb5cdb37a113e8d63222e58da647e63" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "cfg-if 1.0.4", "clipboard-win", "fd-lock", @@ -7810,7 +7883,7 @@ dependencies = [ [[package]] name = "ruvector-attention" -version = "2.0.4" +version = "2.0.5" dependencies = [ "approx", "criterion 0.5.1", @@ -7825,7 +7898,7 @@ dependencies = [ [[package]] name = "ruvector-attention-node" -version = "2.0.4" +version = "2.0.5" dependencies = [ "napi", "napi-build", @@ -7841,7 +7914,7 @@ name = "ruvector-attention-unified-wasm" version = "0.1.0" dependencies = [ "console_error_panic_hook", - "getrandom 0.2.16", + "getrandom 0.2.17", "js-sys", "ruvector-attention", "ruvector-dag", @@ -7857,10 +7930,10 @@ dependencies = [ [[package]] name = "ruvector-attention-wasm" -version = "2.0.4" +version = "2.0.5" dependencies = [ "console_error_panic_hook", - "getrandom 0.2.16", + "getrandom 0.2.17", "js-sys", "ruvector-attention", "serde", @@ -7872,7 +7945,7 @@ dependencies = [ [[package]] name = "ruvector-attn-mincut" -version = "2.0.4" +version = "2.0.5" dependencies = [ "serde", "serde_json", @@ -7881,7 +7954,7 @@ dependencies = [ [[package]] name = "ruvector-bench" -version = "2.0.4" +version = "2.0.5" dependencies = [ "anyhow", "byteorder", @@ -7902,15 +7975,15 @@ dependencies = [ "rayon", "ruvector-cognitive-container", "ruvector-coherence", - "ruvector-core 2.0.4", - "ruvector-mincut 2.0.4", + "ruvector-core 2.0.5", + "ruvector-mincut 2.0.5", "serde", "serde_json", "statistical", "sysinfo 0.31.4", "tabled", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", ] @@ -7932,7 +8005,7 @@ dependencies = [ "rand_distr 0.4.3", "rayon", "reqwest 0.11.27", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "rvf-crypto", "rvf-types", "rvf-wire", @@ -7941,7 +8014,7 @@ dependencies = [ "sha2", "statistical", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", "tracing-subscriber", @@ -7949,7 +8022,7 @@ dependencies = [ [[package]] name = "ruvector-cli" -version = "2.0.4" +version = "2.0.5" dependencies = [ "anyhow", "assert_cmd", @@ -7968,24 +8041,24 @@ dependencies = [ "hyper 1.8.1", "hyper-util", "indicatif", - "lru 0.16.3", + "lru", "ndarray 0.16.1", "ndarray-npy", "predicates", "prettytable-rs", "rand 0.8.5", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "ruvector-gnn", "ruvector-graph", "serde", "serde_json", "shellexpand", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-postgres", "toml", - "tower 0.5.2", + "tower 0.5.3", "tower-http 0.6.8", "tracing", "tracing-subscriber", @@ -8007,13 +8080,13 @@ dependencies = [ "rand_distr 0.4.3", "rayon", "ruvector-attention", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "ruvector-gnn", "ruvector-graph", "serde", "serde_json", "sysinfo 0.31.4", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tower 0.4.13", "tower-http 0.5.2", @@ -8023,7 +8096,7 @@ dependencies = [ [[package]] name = "ruvector-cluster" -version = "2.0.4" +version = "2.0.5" dependencies = [ "async-trait", "bincode 2.0.1", @@ -8032,10 +8105,10 @@ dependencies = [ "futures", "parking_lot 0.12.5", "rand 0.8.5", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", "uuid", @@ -8043,17 +8116,17 @@ dependencies = [ [[package]] name = "ruvector-cognitive-container" -version = "2.0.4" +version = "2.0.5" dependencies = [ "proptest", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "ruvector-coherence" -version = "2.0.4" +version = "2.0.5" dependencies = [ "serde", "serde_json", @@ -8061,16 +8134,16 @@ dependencies = [ [[package]] name = "ruvector-collections" -version = "2.0.4" +version = "2.0.5" dependencies = [ "bincode 2.0.1", "chrono", "dashmap 6.1.0", "parking_lot 0.12.5", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "uuid", ] @@ -8079,6 +8152,29 @@ name = "ruvector-core" version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6891c96a10df0c8d77b3004388f2f4e79bd8f9e09ee9565bd020cd8d4631d054" +dependencies = [ + "anyhow", + "bincode 2.0.1", + "chrono", + "dashmap 6.1.0", + "ndarray 0.16.1", + "once_cell", + "parking_lot 0.12.5", + "rand 0.8.5", + "rand_distr 0.4.3", + "rkyv", + "serde", + "serde_json", + "thiserror 2.0.18", + "tracing", + "uuid", +] + +[[package]] +name = "ruvector-core" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec42a900f56070911bd835baca65a36272c7f6a0549094e09ecd4303883354fe" dependencies = [ "anyhow", "bincode 2.0.1", @@ -8098,14 +8194,14 @@ dependencies = [ "serde", "serde_json", "simsimd", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", "uuid", ] [[package]] name = "ruvector-core" -version = "2.0.4" +version = "2.0.5" dependencies = [ "anyhow", "bincode 2.0.1", @@ -8130,7 +8226,7 @@ dependencies = [ "serde_json", "simsimd", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", "tracing-subscriber", "uuid", @@ -8143,7 +8239,7 @@ dependencies = [ "approx", "ruvector-attention", "ruvector-gnn", - "ruvector-mincut 2.0.4", + "ruvector-mincut 2.0.5", "serde", "serde_json", "thiserror 1.0.69", @@ -8151,19 +8247,19 @@ dependencies = [ [[package]] name = "ruvector-dag" -version = "2.0.4" +version = "2.0.5" dependencies = [ "criterion 0.5.1", "crossbeam", "dashmap 5.5.3", - "getrandom 0.2.16", + "getrandom 0.2.17", "ndarray 0.15.6", "parking_lot 0.12.5", "pqcrypto-dilithium", "pqcrypto-kyber", "proptest", "rand 0.8.5", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "serde", "serde_json", "sha2", @@ -8198,8 +8294,8 @@ dependencies = [ "proptest", "ruvector-delta-core", "serde", - "smallvec 1.15.1", - "thiserror 2.0.17", + "smallvec", + "thiserror 2.0.18", "tokio", "uuid", ] @@ -8218,8 +8314,8 @@ dependencies = [ "serde", "serde_json", "simsimd", - "smallvec 1.15.1", - "thiserror 2.0.17", + "smallvec", + "thiserror 2.0.18", "zstd", ] @@ -8235,8 +8331,8 @@ dependencies = [ "ruvector-delta-core", "serde", "serde_json", - "smallvec 1.15.1", - "thiserror 2.0.17", + "smallvec", + "thiserror 2.0.18", ] [[package]] @@ -8255,8 +8351,8 @@ dependencies = [ "ruvector-delta-core", "serde", "simsimd", - "smallvec 1.15.1", - "thiserror 2.0.17", + "smallvec", + "thiserror 2.0.18", ] [[package]] @@ -8270,7 +8366,7 @@ dependencies = [ "ruvector-delta-core", "serde", "serde-wasm-bindgen", - "smallvec 1.15.1", + "smallvec", "tracing", "tracing-wasm", "wasm-bindgen", @@ -8280,7 +8376,7 @@ dependencies = [ [[package]] name = "ruvector-domain-expansion" -version = "2.0.4" +version = "2.0.5" dependencies = [ "criterion 0.5.1", "proptest", @@ -8290,7 +8386,7 @@ dependencies = [ "rvf-wire", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -8323,10 +8419,10 @@ dependencies = [ [[package]] name = "ruvector-exotic-wasm" -version = "2.0.4" +version = "2.0.5" dependencies = [ "console_error_panic_hook", - "getrandom 0.2.16", + "getrandom 0.2.17", "getrandom 0.3.4", "js-sys", "rand 0.8.5", @@ -8339,15 +8435,15 @@ dependencies = [ [[package]] name = "ruvector-filter" -version = "2.0.4" +version = "2.0.5" dependencies = [ "chrono", "dashmap 6.1.0", "ordered-float", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "uuid", ] @@ -8358,7 +8454,7 @@ dependencies = [ "anyhow", "criterion 0.5.1", "ed25519-dalek", - "getrandom 0.2.16", + "getrandom 0.2.17", "hex", "js-sys", "memmap2", @@ -8369,7 +8465,7 @@ dependencies = [ "serde_bytes", "serde_json", "sha2", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", "wasm-bindgen", @@ -8379,7 +8475,7 @@ dependencies = [ name = "ruvector-fpga-transformer-wasm" version = "0.1.0" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", "js-sys", "ruvector-fpga-transformer", "serde", @@ -8390,7 +8486,7 @@ dependencies = [ [[package]] name = "ruvector-gnn" -version = "2.0.4" +version = "2.0.5" dependencies = [ "anyhow", "criterion 0.5.1", @@ -8406,16 +8502,16 @@ dependencies = [ "rand 0.8.5", "rand_distr 0.4.3", "rayon", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "serde", "serde_json", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "ruvector-gnn-node" -version = "2.0.4" +version = "2.0.5" dependencies = [ "napi", "napi-build", @@ -8426,10 +8522,10 @@ dependencies = [ [[package]] name = "ruvector-gnn-wasm" -version = "2.0.4" +version = "2.0.5" dependencies = [ "console_error_panic_hook", - "getrandom 0.2.16", + "getrandom 0.2.17", "getrandom 0.3.4", "js-sys", "ruvector-gnn", @@ -8441,7 +8537,7 @@ dependencies = [ [[package]] name = "ruvector-graph" -version = "2.0.4" +version = "2.0.5" dependencies = [ "anyhow", "bincode 2.0.1", @@ -8455,7 +8551,7 @@ dependencies = [ "hnsw_rs", "hyper 1.8.1", "lalrpop-util", - "lru 0.16.3", + "lru", "lz4", "memmap2", "mockall", @@ -8481,14 +8577,14 @@ dependencies = [ "rkyv", "roaring", "ruvector-cluster", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "ruvector-raft", "ruvector-replication", "serde", "serde_json", "simsimd", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-test", "tonic", @@ -8502,18 +8598,18 @@ dependencies = [ [[package]] name = "ruvector-graph-node" -version = "2.0.4" +version = "2.0.5" dependencies = [ "anyhow", "futures", "napi", "napi-build", "napi-derive", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "ruvector-graph", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", "uuid", @@ -8521,35 +8617,35 @@ dependencies = [ [[package]] name = "ruvector-graph-transformer" -version = "2.0.4" +version = "2.0.5" dependencies = [ "proptest", "rand 0.8.5", "ruvector-attention", "ruvector-coherence", "ruvector-gnn", - "ruvector-mincut 2.0.4", + "ruvector-mincut 2.0.5", "ruvector-solver", "ruvector-verified", "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "ruvector-graph-transformer-node" -version = "2.0.4" +version = "2.0.5" dependencies = [ "napi", "napi-build", "napi-derive", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "ruvector-graph-transformer-wasm" -version = "2.0.4" +version = "2.0.5" dependencies = [ "js-sys", "serde", @@ -8561,21 +8657,21 @@ dependencies = [ [[package]] name = "ruvector-graph-wasm" -version = "2.0.4" +version = "2.0.5" dependencies = [ "anyhow", "console_error_panic_hook", - "getrandom 0.2.16", + "getrandom 0.2.17", "getrandom 0.3.4", "js-sys", "parking_lot 0.12.5", "regex", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "ruvector-graph", "serde", "serde-wasm-bindgen", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing-wasm", "uuid", "wasm-bindgen", @@ -8596,7 +8692,7 @@ dependencies = [ "rand_distr 0.4.3", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -8612,7 +8708,7 @@ dependencies = [ [[package]] name = "ruvector-math" -version = "2.0.4" +version = "2.0.5" dependencies = [ "approx", "criterion 0.5.1", @@ -8622,15 +8718,15 @@ dependencies = [ "rand_distr 0.4.3", "rayon", "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "ruvector-math-wasm" -version = "2.0.4" +version = "2.0.5" dependencies = [ "console_error_panic_hook", - "getrandom 0.2.16", + "getrandom 0.2.17", "js-sys", "rayon", "ruvector-math", @@ -8645,7 +8741,7 @@ dependencies = [ [[package]] name = "ruvector-metrics" -version = "2.0.4" +version = "2.0.5" dependencies = [ "chrono", "lazy_static", @@ -8672,13 +8768,35 @@ dependencies = [ "ruvector-core 0.1.31", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", ] [[package]] name = "ruvector-mincut" version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d62e10cbb7d80b1e2b72d55c1e3eb7f0c4c5e3f31984bc3baa9b7a02700741e" +dependencies = [ + "anyhow", + "crossbeam", + "dashmap 6.1.0", + "ordered-float", + "parking_lot 0.12.5", + "petgraph", + "rand 0.8.5", + "rayon", + "roaring", + "ruvector-core 2.0.4", + "serde", + "serde_json", + "thiserror 2.0.18", + "tracing", +] + +[[package]] +name = "ruvector-mincut" +version = "2.0.5" dependencies = [ "anyhow", "criterion 0.5.1", @@ -8692,11 +8810,11 @@ dependencies = [ "rand 0.8.5", "rayon", "roaring", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "ruvector-graph", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", ] @@ -8705,11 +8823,11 @@ name = "ruvector-mincut-gated-transformer" version = "0.1.0" dependencies = [ "criterion 0.5.1", - "getrandom 0.2.16", + "getrandom 0.2.17", "proptest", "rand 0.8.5", "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -8719,7 +8837,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af87e661be104daa3061df958f1077c5b45adf183ffa5b0da0e9bab20620430e" dependencies = [ "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -8737,24 +8855,24 @@ dependencies = [ [[package]] name = "ruvector-mincut-node" -version = "2.0.4" +version = "2.0.5" dependencies = [ "napi", "napi-build", "napi-derive", - "ruvector-mincut 2.0.4", + "ruvector-mincut 2.0.5", "serde", "serde_json", ] [[package]] name = "ruvector-mincut-wasm" -version = "2.0.4" +version = "2.0.5" dependencies = [ "console_error_panic_hook", - "getrandom 0.2.16", + "getrandom 0.2.17", "js-sys", - "ruvector-mincut 2.0.4", + "ruvector-mincut 2.0.5", "serde", "serde-wasm-bindgen", "serde_json", @@ -8764,7 +8882,7 @@ dependencies = [ [[package]] name = "ruvector-nervous-system" -version = "2.0.4" +version = "2.0.5" dependencies = [ "anyhow", "approx", @@ -8777,7 +8895,7 @@ dependencies = [ "rand_distr 0.4.3", "rayon", "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -8785,7 +8903,7 @@ name = "ruvector-nervous-system-wasm" version = "0.1.0" dependencies = [ "console_error_panic_hook", - "getrandom 0.2.16", + "getrandom 0.2.17", "js-sys", "rand 0.8.5", "serde", @@ -8798,19 +8916,19 @@ dependencies = [ [[package]] name = "ruvector-node" -version = "2.0.4" +version = "2.0.5" dependencies = [ "anyhow", "napi", "napi-build", "napi-derive", "ruvector-collections", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "ruvector-filter", "ruvector-metrics", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", ] @@ -8858,7 +8976,7 @@ dependencies = [ [[package]] name = "ruvector-profiler" -version = "2.0.4" +version = "2.0.5" dependencies = [ "serde", "serde_json", @@ -8867,7 +8985,7 @@ dependencies = [ [[package]] name = "ruvector-raft" -version = "2.0.4" +version = "2.0.5" dependencies = [ "bincode 2.0.1", "chrono", @@ -8875,10 +8993,10 @@ dependencies = [ "futures", "parking_lot 0.12.5", "rand 0.8.5", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", "uuid", @@ -8886,7 +9004,7 @@ dependencies = [ [[package]] name = "ruvector-replication" -version = "2.0.4" +version = "2.0.5" dependencies = [ "bincode 2.0.1", "chrono", @@ -8894,10 +9012,10 @@ dependencies = [ "futures", "parking_lot 0.12.5", "rand 0.8.5", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", "uuid", @@ -8905,7 +9023,7 @@ dependencies = [ [[package]] name = "ruvector-router-cli" -version = "2.0.4" +version = "2.0.5" dependencies = [ "anyhow", "chrono", @@ -8920,7 +9038,7 @@ dependencies = [ [[package]] name = "ruvector-router-core" -version = "2.0.4" +version = "2.0.5" dependencies = [ "anyhow", "bincode 2.0.1", @@ -8939,7 +9057,7 @@ dependencies = [ "serde_json", "simsimd", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", "tracing-subscriber", "uuid", @@ -8947,7 +9065,7 @@ dependencies = [ [[package]] name = "ruvector-router-ffi" -version = "2.0.4" +version = "2.0.5" dependencies = [ "anyhow", "chrono", @@ -8962,7 +9080,7 @@ dependencies = [ [[package]] name = "ruvector-router-wasm" -version = "2.0.4" +version = "2.0.5" dependencies = [ "js-sys", "ruvector-router-core", @@ -8976,7 +9094,7 @@ dependencies = [ [[package]] name = "ruvector-scipix" -version = "2.0.4" +version = "2.0.5" dependencies = [ "ab_glyph", "anyhow", @@ -8999,7 +9117,7 @@ dependencies = [ "dialoguer", "dirs 5.0.1", "dotenvy", - "env_logger 0.11.8", + "env_logger", "futures", "getrandom 0.3.4", "glob", @@ -9025,14 +9143,14 @@ dependencies = [ "proptest", "rand 0.8.5", "rayon", - "reqwest 0.12.25", + "reqwest 0.12.28", "rusttype", "serde", "serde-wasm-bindgen", "serde_json", "sha2", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "toml", "tower 0.4.13", @@ -9049,17 +9167,17 @@ dependencies = [ [[package]] name = "ruvector-server" -version = "2.0.4" +version = "2.0.5" dependencies = [ "axum", "dashmap 6.1.0", "parking_lot 0.12.5", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", - "tower 0.5.2", + "tower 0.5.3", "tower-http 0.6.8", "tracing", "uuid", @@ -9067,43 +9185,43 @@ dependencies = [ [[package]] name = "ruvector-snapshot" -version = "2.0.4" +version = "2.0.5" dependencies = [ "async-trait", "bincode 2.0.1", "chrono", "flate2", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "serde", "serde_json", "sha2", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "uuid", ] [[package]] name = "ruvector-solver" -version = "2.0.4" +version = "2.0.5" dependencies = [ "approx", "criterion 0.5.1", "crossbeam", "dashmap 6.1.0", - "getrandom 0.2.16", + "getrandom 0.2.17", "nalgebra 0.33.2", "parking_lot 0.12.5", "proptest", "rand 0.8.5", "rayon", "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", ] [[package]] name = "ruvector-solver-node" -version = "2.0.4" +version = "2.0.5" dependencies = [ "napi", "napi-build", @@ -9116,9 +9234,9 @@ dependencies = [ [[package]] name = "ruvector-solver-wasm" -version = "2.0.4" +version = "2.0.5" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", "js-sys", "ruvector-solver", "serde", @@ -9131,42 +9249,42 @@ dependencies = [ [[package]] name = "ruvector-sona" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb181c34b259aa642a59fbd1a31e818e442d743f9c2f1bea97cb8ffb8c87c48" +version = "0.1.6" dependencies = [ + "console_error_panic_hook", + "criterion 0.5.1", "crossbeam", - "getrandom 0.2.16", + "getrandom 0.2.17", + "js-sys", + "napi", + "napi-derive", + "once_cell", "parking_lot 0.12.5", "rand 0.8.5", "serde", "serde_json", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", ] [[package]] name = "ruvector-sona" version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "981e86a5d07c09782014eaa9db47b0b55e0a30900e05d8be04ce68e5cb3ea803" dependencies = [ - "console_error_panic_hook", - "criterion 0.5.1", "crossbeam", - "getrandom 0.2.16", - "js-sys", - "napi", - "napi-derive", - "once_cell", + "getrandom 0.2.17", "parking_lot 0.12.5", "rand 0.8.5", "serde", "serde_json", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", ] [[package]] name = "ruvector-sparse-inference" -version = "2.0.4" +version = "2.0.5" dependencies = [ "anyhow", "byteorder", @@ -9183,13 +9301,13 @@ dependencies = [ "rkyv", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", ] [[package]] name = "ruvector-sparse-inference-wasm" -version = "2.0.4" +version = "2.0.5" dependencies = [ "console_error_panic_hook", "getrandom 0.3.4", @@ -9206,11 +9324,11 @@ dependencies = [ [[package]] name = "ruvector-temporal-tensor" -version = "2.0.4" +version = "2.0.5" [[package]] name = "ruvector-tiny-dancer-core" -version = "2.0.4" +version = "2.0.5" dependencies = [ "anyhow", "bytemuck", @@ -9232,7 +9350,7 @@ dependencies = [ "serde_json", "simsimd", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", "tracing-subscriber", "uuid", @@ -9240,7 +9358,7 @@ dependencies = [ [[package]] name = "ruvector-tiny-dancer-node" -version = "2.0.4" +version = "2.0.5" dependencies = [ "anyhow", "chrono", @@ -9251,13 +9369,13 @@ dependencies = [ "ruvector-tiny-dancer-core", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", ] [[package]] name = "ruvector-tiny-dancer-wasm" -version = "2.0.4" +version = "2.0.5" dependencies = [ "js-sys", "ruvector-tiny-dancer-core", @@ -9278,10 +9396,10 @@ dependencies = [ "proptest", "ruvector-cognitive-container", "ruvector-coherence", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -9300,26 +9418,26 @@ dependencies = [ [[package]] name = "ruvector-wasm" -version = "2.0.4" +version = "2.0.5" dependencies = [ "anyhow", "base64 0.22.1", "console_error_panic_hook", "ed25519-dalek", - "getrandom 0.2.16", + "getrandom 0.2.17", "getrandom 0.3.4", "hex", "js-sys", "parking_lot 0.12.5", "rand 0.8.5", "ruvector-collections", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "ruvector-filter", "serde", "serde-wasm-bindgen", "serde_json", "sha2", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing-wasm", "wasm-bindgen", "wasm-bindgen-futures", @@ -9329,9 +9447,9 @@ dependencies = [ [[package]] name = "ruvllm" -version = "2.0.1" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a131c860e1464b4f92d93821655d0b7d25d0624f7885b3137c40c60a79a7a7ff" +checksum = "66cfdb19d6c71880ae57f96f1d0cdc21bba93ca4719aff58191b9875b86054aa" dependencies = [ "anyhow", "async-trait", @@ -9340,22 +9458,20 @@ dependencies = [ "dashmap 6.1.0", "dirs 5.0.1", "futures-core", - "getrandom 0.2.16", "half 2.7.1", - "lru 0.12.5", "md5", "ndarray 0.16.1", "once_cell", "parking_lot 0.12.5", "rand 0.8.5", "regex", - "ruvector-core 0.1.31", - "ruvector-sona 0.1.4", + "ruvector-core 2.0.4", + "ruvector-sona 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "serde", "serde_json", "sha2", - "smallvec 1.15.1", - "thiserror 2.0.17", + "smallvec", + "thiserror 2.0.18", "tokio", "tokio-stream", "tracing", @@ -9364,7 +9480,7 @@ dependencies = [ [[package]] name = "ruvllm" -version = "2.0.4" +version = "2.0.5" dependencies = [ "anyhow", "async-trait", @@ -9394,16 +9510,16 @@ dependencies = [ "rayon", "regex", "ruvector-attention", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "ruvector-gnn", "ruvector-graph", "ruvector-sona 0.1.6", "serde", "serde_json", "sha2", - "smallvec 1.15.1", + "smallvec", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokenizers 0.20.4", "tokio", "tokio-stream", @@ -9414,7 +9530,7 @@ dependencies = [ [[package]] name = "ruvllm-cli" -version = "2.0.4" +version = "2.0.5" dependencies = [ "anyhow", "assert_cmd", @@ -9434,13 +9550,13 @@ dependencies = [ "predicates", "prettytable-rs", "rustyline", - "ruvllm 2.0.4", + "ruvllm 2.0.5", "serde", "serde_json", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", - "tower 0.5.2", + "tower 0.5.3", "tower-http 0.6.8", "tracing", "tracing-subscriber", @@ -9476,7 +9592,7 @@ dependencies = [ "rand_distr 0.4.3", "ruvector-attention", "ruvector-collections", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "ruvector-dag", "ruvector-filter", "ruvector-gnn", @@ -9486,7 +9602,7 @@ dependencies = [ "serde", "serde_json", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", "tracing-subscriber", @@ -9674,7 +9790,7 @@ dependencies = [ "serde_json", "tempfile", "tokio", - "tower 0.5.2", + "tower 0.5.3", "tower-http 0.6.8", ] @@ -9704,11 +9820,11 @@ dependencies = [ "anyhow", "console_error_panic_hook", "fs2", - "getrandom 0.2.16", + "getrandom 0.2.17", "js-sys", "once_cell", "parking_lot 0.12.5", - "ruvector-core 2.0.4", + "ruvector-core 2.0.5", "rvf-runtime", "rvf-types", "serde", @@ -9723,9 +9839,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.20" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" [[package]] name = "safe_arch" @@ -9746,6 +9862,17 @@ dependencies = [ "serde_json", ] +[[package]] +name = "safetensors" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "675656c1eabb620b921efea4f9199f97fc86e36dd6ffd1fbbe48d0f59a4987f5" +dependencies = [ + "hashbrown 0.16.1", + "serde", + "serde_json", +] + [[package]] name = "same-file" version = "1.0.6" @@ -9788,12 +9915,12 @@ checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" [[package]] name = "security-framework" -version = "2.11.1" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ - "bitflags 2.10.0", - "core-foundation", + "bitflags 2.11.0", + "core-foundation 0.10.1", "core-foundation-sys", "libc", "security-framework-sys", @@ -9801,9 +9928,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.15.0" +version = "2.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" dependencies = [ "core-foundation-sys", "libc", @@ -9901,20 +10028,20 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "serde_json" -version = "1.0.145" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ "itoa", "memchr", - "ryu", "serde", "serde_core", + "zmij", ] [[package]] @@ -10001,15 +10128,15 @@ dependencies = [ [[package]] name = "shell-words" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" +checksum = "dc6fe69c597f9c37bfeeeeeb33da3530379845f10be461a66d16d03eca2ded77" [[package]] name = "shellexpand" -version = "3.1.1" +version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b1fdf65dd6331831494dd616b30351c38e96e45921a27745cf98490458b90bb" +checksum = "32824fab5e16e6c4d86dc1ba84489390419a39f97699852b66480bb87d297ed8" dependencies = [ "dirs 6.0.0", ] @@ -10022,10 +10149,11 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.7" +version = "1.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7664a098b8e616bdfcc2dc0e9ac44eb231eedf41db4e9fe95d8d32ec728dedad" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" dependencies = [ + "errno", "libc", ] @@ -10097,15 +10225,15 @@ dependencies = [ [[package]] name = "siphasher" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" +checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" [[package]] name = "slab" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "slotmap" @@ -10125,12 +10253,6 @@ dependencies = [ "serde", ] -[[package]] -name = "smallvec" -version = "2.0.0-alpha.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d44cfb396c3caf6fbfd0ab422af02631b69ddd96d2eff0b0f0724f9024051b" - [[package]] name = "socket2" version = "0.5.10" @@ -10143,9 +10265,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" +checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" dependencies = [ "libc", "windows-sys 0.60.2", @@ -10186,7 +10308,7 @@ version = "0.3.0+sdk-1.3.268.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", ] [[package]] @@ -10257,8 +10379,8 @@ dependencies = [ "serde", "serde_json", "sha2", - "smallvec 1.15.1", - "thiserror 2.0.17", + "smallvec", + "thiserror 2.0.18", "tokio", "tokio-stream", "tracing", @@ -10276,7 +10398,7 @@ dependencies = [ "quote", "sqlx-core", "sqlx-macros-core", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -10299,7 +10421,7 @@ dependencies = [ "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", - "syn 2.0.111", + "syn 2.0.117", "tokio", "url", ] @@ -10312,7 +10434,7 @@ checksum = "aa003f0038df784eb8fecbbac13affe3da23b45194bd57dba231c8f48199c526" dependencies = [ "atoi", "base64 0.22.1", - "bitflags 2.10.0", + "bitflags 2.11.0", "byteorder", "bytes", "chrono", @@ -10339,13 +10461,13 @@ dependencies = [ "serde", "sha1", "sha2", - "smallvec 1.15.1", + "smallvec", "sqlx-core", "stringprep", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", "uuid", - "whoami", + "whoami 1.6.1", ] [[package]] @@ -10356,7 +10478,7 @@ checksum = "db58fcd5a53cf07c184b154801ff91347e4c30d17a3562a635ff028ad5deda46" dependencies = [ "atoi", "base64 0.22.1", - "bitflags 2.10.0", + "bitflags 2.11.0", "byteorder", "chrono", "crc", @@ -10378,13 +10500,13 @@ dependencies = [ "serde", "serde_json", "sha2", - "smallvec 1.15.1", + "smallvec", "sqlx-core", "stringprep", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", "uuid", - "whoami", + "whoami 1.6.1", ] [[package]] @@ -10407,7 +10529,7 @@ dependencies = [ "serde", "serde_urlencoded", "sqlx-core", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", "url", "uuid", @@ -10463,7 +10585,7 @@ name = "subpolynomial-time-mincut-demo" version = "0.1.0" dependencies = [ "rand 0.8.5", - "ruvector-mincut 2.0.4", + "ruvector-mincut 2.0.5", ] [[package]] @@ -10493,9 +10615,9 @@ dependencies = [ [[package]] name = "symbolic-common" -version = "12.17.0" +version = "12.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d8046c5674ab857104bc4559d505f4809b8060d57806e45d49737c97afeb60" +checksum = "751a2823d606b5d0a7616499e4130a516ebd01a44f39811be2b9600936509c23" dependencies = [ "debugid", "memmap2", @@ -10505,9 +10627,9 @@ dependencies = [ [[package]] name = "symbolic-demangle" -version = "12.17.0" +version = "12.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1accb6e5c4b0f682de907623912e616b44be1c9e725775155546669dbff720ec" +checksum = "79b237cfbe320601dd24b4ac817a5b68bb28f5508e33f08d42be0682cadc8ac9" dependencies = [ "cpp_demangle", "rustc-demangle", @@ -10527,9 +10649,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.111" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -10559,7 +10681,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -10568,7 +10690,7 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec7dddc5f0fee506baf8b9fdb989e242f17e4b11c61dfbb0635b705217199eea" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "byteorder", "enum-as-inner", "libc", @@ -10582,7 +10704,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01198a2debb237c62b6826ec7081082d951f46dbb64b0e8c7649a452230d1dfc" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "byteorder", "enum-as-inner", "libc", @@ -10626,18 +10748,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ "bitflags 1.3.2", - "core-foundation", + "core-foundation 0.9.4", "system-configuration-sys 0.5.0", ] [[package]] name = "system-configuration" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" dependencies = [ - "bitflags 2.10.0", - "core-foundation", + "bitflags 2.11.0", + "core-foundation 0.9.4", "system-configuration-sys 0.6.0", ] @@ -10696,25 +10818,14 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" -[[package]] -name = "tar" -version = "0.4.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" -dependencies = [ - "filetime", - "libc", - "xattr", -] - [[package]] name = "tempfile" -version = "3.23.0" +version = "3.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" +checksum = "82a72c767771b47409d2345987fda8628641887d5466101319899796367354a0" dependencies = [ "fastrand", - "getrandom 0.3.4", + "getrandom 0.4.1", "once_cell", "rustix", "windows-sys 0.61.2", @@ -10767,11 +10878,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 2.0.17", + "thiserror-impl 2.0.18", ] [[package]] @@ -10782,18 +10893,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "thiserror-impl" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -10821,30 +10932,30 @@ dependencies = [ [[package]] name = "time" -version = "0.3.44" +version = "0.3.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" +checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" dependencies = [ "deranged", "itoa", "num-conv", "powerfmt", - "serde", + "serde_core", "time-core", "time-macros", ] [[package]] name = "time-core" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" +checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" [[package]] name = "time-macros" -version = "0.2.24" +version = "0.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" +checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" dependencies = [ "num-conv", "time-core", @@ -10894,7 +11005,7 @@ dependencies = [ "aho-corasick", "derive_builder", "esaxx-rs", - "getrandom 0.2.16", + "getrandom 0.2.17", "itertools 0.12.1", "lazy_static", "log", @@ -10943,7 +11054,7 @@ dependencies = [ "serde", "serde_json", "spm_precompiled", - "thiserror 2.0.17", + "thiserror 2.0.18", "unicode-normalization-alignments", "unicode-segmentation", "unicode_categories", @@ -10951,9 +11062,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.48.0" +version = "1.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" +checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" dependencies = [ "bytes", "libc", @@ -10961,7 +11072,7 @@ dependencies = [ "parking_lot 0.12.5", "pin-project-lite", "signal-hook-registry", - "socket2 0.6.1", + "socket2 0.6.2", "tokio-macros", "windows-sys 0.61.2", ] @@ -10974,7 +11085,7 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -10989,9 +11100,9 @@ dependencies = [ [[package]] name = "tokio-postgres" -version = "0.7.15" +version = "0.7.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b40d66d9b2cfe04b628173409368e58247e8eddbbd3b0e6c6ba1d09f20f6c9e" +checksum = "dcea47c8f71744367793f16c2db1f11cb859d28f436bdb4ca9193eb1f787ee42" dependencies = [ "async-trait", "byteorder", @@ -11007,10 +11118,10 @@ dependencies = [ "postgres-protocol", "postgres-types", "rand 0.9.2", - "socket2 0.6.1", + "socket2 0.6.2", "tokio", "tokio-util", - "whoami", + "whoami 2.1.1", ] [[package]] @@ -11029,15 +11140,15 @@ version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ - "rustls 0.23.35", + "rustls 0.23.37", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" dependencies = [ "futures-core", "pin-project-lite", @@ -11046,12 +11157,10 @@ dependencies = [ [[package]] name = "tokio-test" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2468baabc3311435b55dd935f702f42cd1b8abb7e754fb7dfb16bd36aa88f9f7" +checksum = "3f6d24790a10a7af737693a3e8f1d03faef7e6ca0cc99aae5066f533766de545" dependencies = [ - "async-stream", - "bytes", "futures-core", "tokio", "tokio-stream", @@ -11071,9 +11180,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.17" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" dependencies = [ "bytes", "futures-core", @@ -11140,9 +11249,9 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.0.6+spec-1.1.0" +version = "1.0.9+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" +checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" dependencies = [ "winnow", ] @@ -11164,7 +11273,7 @@ dependencies = [ "axum", "base64 0.22.1", "bytes", - "h2 0.4.12", + "h2 0.4.13", "http 1.4.0", "http-body 1.0.1", "http-body-util", @@ -11206,9 +11315,9 @@ dependencies = [ [[package]] name = "tower" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" dependencies = [ "futures-core", "futures-util", @@ -11227,7 +11336,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" dependencies = [ "async-compression", - "bitflags 2.10.0", + "bitflags 2.11.0", "bytes", "futures-core", "futures-util", @@ -11254,7 +11363,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" dependencies = [ "async-compression", - "bitflags 2.10.0", + "bitflags 2.11.0", "bytes", "futures-core", "futures-util", @@ -11264,7 +11373,7 @@ dependencies = [ "pin-project-lite", "tokio", "tokio-util", - "tower 0.5.2", + "tower 0.5.3", "tower-layer", "tower-service", "tracing", @@ -11284,9 +11393,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d15d90a0b5c19378952d479dc858407149d7bb45a14de0142f6c534b16fc647" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ "log", "pin-project-lite", @@ -11302,14 +11411,14 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "tracing-core" -version = "0.1.35" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a04e24fab5c89c6a36eb8558c9656f30d81de51dfa4d3b45f26b21d61fa0a6c" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", "valuable", @@ -11349,7 +11458,7 @@ dependencies = [ "serde", "serde_json", "sharded-slab", - "smallvec 1.15.1", + "smallvec", "thread_local", "tracing", "tracing-core", @@ -11442,7 +11551,7 @@ dependencies = [ "num-traits", "num_cpus", "rayon", - "safetensors", + "safetensors 0.4.5", "serde", "thiserror 1.0.69", "tracing", @@ -11490,9 +11599,9 @@ checksum = "ccb97dac3243214f8d8507998906ca3e2e0b900bf9bf4870477f125b82e68f6e" [[package]] name = "unicase" -version = "2.8.1" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" +checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" [[package]] name = "unicode-bidi" @@ -11502,9 +11611,9 @@ checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" [[package]] name = "unicode-ident" -version = "1.0.22" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "unicode-normalization" @@ -11521,7 +11630,7 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43f613e4fa046e69818dd287fdc4bc78175ff20331479dab6e1b0f98d57062de" dependencies = [ - "smallvec 1.15.1", + "smallvec", ] [[package]] @@ -11583,7 +11692,7 @@ dependencies = [ "log", "native-tls", "once_cell", - "rustls 0.23.35", + "rustls 0.23.37", "rustls-pki-types", "serde", "serde_json", @@ -11594,9 +11703,9 @@ dependencies = [ [[package]] name = "ureq" -version = "3.1.4" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d39cb1dbab692d82a977c0392ffac19e188bd9186a9f32806f0aaa859d75585a" +checksum = "fdc97a28575b85cfedf2a7e7d3cc64b3e11bd8ac766666318003abbacc7a21fc" dependencies = [ "base64 0.22.1", "der", @@ -11624,9 +11733,9 @@ dependencies = [ [[package]] name = "url" -version = "2.5.7" +version = "2.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" dependencies = [ "form_urlencoded", "idna 1.1.0", @@ -11660,11 +11769,11 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.19.0" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" +checksum = "b672338555252d43fd2240c714dc444b8c6fb0a5c5335e65a07bba7742735ddb" dependencies = [ - "getrandom 0.3.4", + "getrandom 0.4.1", "js-sys", "serde_core", "wasm-bindgen", @@ -11708,7 +11817,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -11778,11 +11887,29 @@ version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" +[[package]] +name = "wasi" +version = "0.14.7+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" +dependencies = [ + "wasip2", +] + [[package]] name = "wasip2" -version = "1.0.1+wasi-0.2.4" +version = "1.0.2+wasi-0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ "wit-bindgen", ] @@ -11793,11 +11920,20 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" +[[package]] +name = "wasite" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66fe902b4a6b8028a753d5424909b764ccf79b7a209eac9bf97e59cda9f71a42" +dependencies = [ + "wasi 0.14.7+wasi-0.2.4", +] + [[package]] name = "wasm-bindgen" -version = "0.2.106" +version = "0.2.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" +checksum = "60722a937f594b7fde9adb894d7c092fc1bb6612897c46368d18e7a20208eff2" dependencies = [ "cfg-if 1.0.4", "once_cell", @@ -11808,11 +11944,12 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.56" +version = "0.4.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" +checksum = "8a89f4650b770e4521aa6573724e2aed4704372151bd0de9d16a3bbabb87441a" dependencies = [ "cfg-if 1.0.4", + "futures-util", "js-sys", "once_cell", "wasm-bindgen", @@ -11821,9 +11958,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.106" +version = "0.2.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" +checksum = "0fac8c6395094b6b91c4af293f4c79371c163f9a6f56184d2c9a85f5a95f3950" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -11831,14 +11968,14 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.106" +version = "0.2.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" +checksum = "ab3fabce6159dc20728033842636887e4877688ae94382766e00b180abac9d60" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", "wasm-bindgen-shared", ] @@ -11856,18 +11993,18 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.106" +version = "0.2.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" +checksum = "de0e091bdb824da87dc01d967388880d017a0a9bc4f3bdc0d86ee9f9336e3bb5" dependencies = [ "unicode-ident", ] [[package]] name = "wasm-bindgen-test" -version = "0.3.56" +version = "0.3.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25e90e66d265d3a1efc0e72a54809ab90b9c0c515915c67cdf658689d2c22c6c" +checksum = "9e6fc7a6f61926fa909ee570d4ca194e264545ebbbb4ffd63ac07ba921bff447" dependencies = [ "async-trait", "cast", @@ -11882,17 +12019,46 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "wasm-bindgen-test-macro", + "wasm-bindgen-test-shared", ] [[package]] name = "wasm-bindgen-test-macro" -version = "0.3.56" +version = "0.3.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7150335716dce6028bead2b848e72f47b45e7b9422f64cccdc23bedca89affc1" +checksum = "f745a117245c232859f203d6c8d52c72d4cfc42de7e668c147ca6b3e45f1157e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", +] + +[[package]] +name = "wasm-bindgen-test-shared" +version = "0.2.113" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f88e7ae201cc7c291da857532eb1c8712e89494e76ec3967b9805221388e938" + +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap 2.12.1", + "wasm-encoder", + "wasmparser", ] [[package]] @@ -11919,6 +12085,18 @@ dependencies = [ "web-sys", ] +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags 2.11.0", + "hashbrown 0.15.5", + "indexmap 2.12.1", + "semver 1.0.27", +] + [[package]] name = "weak-table" version = "0.3.2" @@ -11927,9 +12105,9 @@ checksum = "323f4da9523e9a669e1eaf9c6e763892769b1d38c623913647bfdc1532fe4549" [[package]] name = "web-sys" -version = "0.3.83" +version = "0.3.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" +checksum = "705eceb4ce901230f8625bd1d665128056ccbe4b7408faa625eec1ba80f59a97" dependencies = [ "js-sys", "wasm-bindgen", @@ -11947,9 +12125,9 @@ dependencies = [ [[package]] name = "webpki-root-certs" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee3e3b5f5e80bc89f30ce8d0343bf4e5f12341c51f3e26cbeecbc7c85443e85b" +checksum = "804f18a4ac2676ffb4e8b5b5fa9ae38af06df08162314f96a68d2a363e21a8ca" dependencies = [ "rustls-pki-types", ] @@ -11966,14 +12144,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "webpki-roots 1.0.4", + "webpki-roots 1.0.6", ] [[package]] name = "webpki-roots" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e" +checksum = "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed" dependencies = [ "rustls-pki-types", ] @@ -12011,7 +12189,7 @@ dependencies = [ "parking_lot 0.12.5", "profiling", "raw-window-handle", - "smallvec 1.15.1", + "smallvec", "static_assertions", "wasm-bindgen", "wasm-bindgen-futures", @@ -12029,7 +12207,7 @@ checksum = "d63c3c478de8e7e01786479919c8769f62a22eec16788d8c2ac77ce2c132778a" dependencies = [ "arrayvec", "bit-vec 0.8.0", - "bitflags 2.10.0", + "bitflags 2.11.0", "cfg_aliases 0.1.1", "document-features", "indexmap 2.12.1", @@ -12040,7 +12218,7 @@ dependencies = [ "profiling", "raw-window-handle", "rustc-hash 1.1.0", - "smallvec 1.15.1", + "smallvec", "thiserror 1.0.69", "wgpu-hal", "wgpu-types", @@ -12056,7 +12234,7 @@ dependencies = [ "arrayvec", "ash", "bit-set 0.8.0", - "bitflags 2.10.0", + "bitflags 2.11.0", "block", "bytemuck", "cfg_aliases 0.1.1", @@ -12082,7 +12260,7 @@ dependencies = [ "raw-window-handle", "renderdoc-sys", "rustc-hash 1.1.0", - "smallvec 1.15.1", + "smallvec", "thiserror 1.0.69", "wasm-bindgen", "web-sys", @@ -12097,7 +12275,7 @@ version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "610f6ff27778148c31093f3b03abc4840f9636d58d597ca2f5977433acfe0068" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "js-sys", "web-sys", ] @@ -12109,7 +12287,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d4a4db5077702ca3015d3d02d74974948aba2ad9e12ab7df718ee64ccd7e97d" dependencies = [ "libredox", - "wasite", + "wasite 0.1.0", +] + +[[package]] +name = "whoami" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6a5b12f9df4f978d2cfdb1bd3bac52433f44393342d7ee9c25f5a1c14c0f45d" +dependencies = [ + "libc", + "libredox", + "objc2-system-configuration", + "wasite 1.0.2", "web-sys", ] @@ -12254,7 +12444,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -12265,7 +12455,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -12276,7 +12466,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -12287,7 +12477,7 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -12298,7 +12488,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -12309,7 +12499,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -12646,9 +12836,91 @@ dependencies = [ [[package]] name = "wit-bindgen" -version = "0.46.0" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap 2.12.1", + "prettyplease", + "syn 2.0.117", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.117", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags 2.11.0", + "indexmap 2.12.1", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.12.1", + "log", + "semver 1.0.27", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] [[package]] name = "writeable" @@ -12665,16 +12937,6 @@ dependencies = [ "tap", ] -[[package]] -name = "xattr" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" -dependencies = [ - "libc", - "rustix", -] - [[package]] name = "xml-rs" version = "0.8.28" @@ -12750,7 +13012,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", "synstructure", ] @@ -12762,28 +13024,28 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", "synstructure", ] [[package]] name = "zerocopy" -version = "0.8.31" +version = "0.8.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" +checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.31" +version = "0.8.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" +checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -12803,7 +13065,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", "synstructure", ] @@ -12824,7 +13086,7 @@ checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -12857,7 +13119,7 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -12888,10 +13150,16 @@ dependencies = [ "flate2", "indexmap 2.12.1", "memchr", - "thiserror 2.0.17", + "thiserror 2.0.18", "zopfli", ] +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" + [[package]] name = "zopfli" version = "0.8.3" @@ -12940,9 +13208,9 @@ checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" [[package]] name = "zune-core" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "111f7d9820f05fd715df3144e254d6fc02ee4088b0644c0ffd0efc9e6d9d2773" +checksum = "cb8a0807f7c01457d0379ba880ba6322660448ddebc890ce29bb64da71fb40f9" [[package]] name = "zune-inflate" @@ -12964,9 +13232,9 @@ dependencies = [ [[package]] name = "zune-jpeg" -version = "0.5.6" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f520eebad972262a1dde0ec455bce4f8b298b1e5154513de58c114c4c54303e8" +checksum = "410e9ecef634c709e3831c2cfdb8d9c32164fae1c67496d5b68fff728eec37fe" dependencies = [ - "zune-core 0.5.0", + "zune-core 0.5.1", ] diff --git a/Cargo.toml b/Cargo.toml index 5ab564605..e16a7ea51 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -115,7 +115,7 @@ members = [ resolver = "2" [workspace.package] -version = "2.0.4" +version = "2.0.5" edition = "2021" rust-version = "1.77" license = "MIT" diff --git a/README.md b/README.md index c234a8ba4..8c0b26294 100644 --- a/README.md +++ b/README.md @@ -113,7 +113,7 @@ Most vector databases are static — they store embeddings and search them. That | 44 | **Drop into Postgres** | pgvector-compatible extension with SIMD acceleration | | 45 | **MCP integration** | Model Context Protocol server for AI assistant tools | | 46 | **Cloud deployment** | One-click deploy to Cloud Run, Kubernetes | -| 47 | **13 Rust crates + 4 npm packages** | [RVF SDK](./crates/rvf/README.md) published on [crates.io](https://crates.io/crates/rvf-runtime) and [npm](https://www.npmjs.com/package/@ruvector/rvf) | +| 47 | **22 Rust crates + 4 npm packages** | [RVF SDK](./crates/rvf/README.md) published on [crates.io](https://crates.io/crates/rvf-runtime) and [npm](https://www.npmjs.com/package/@ruvector/rvf) | **Self-Learning & Adaptation** | # | Capability | What It Does | @@ -238,7 +238,7 @@ npx @ruvector/rvf-mcp-server --transport stdio # MCP server for AI agents | DNA-style lineage | Parent/child derivation chains with cryptographic verification | | 24 segment types | VEC, INDEX, KERNEL, EBPF, WASM, COW_MAP, WITNESS, CRYPTO, and 16 more | -**Rust crates** (13): [`rvf-types`](https://crates.io/crates/rvf-types) `rvf-wire` `rvf-manifest` `rvf-quant` `rvf-index` `rvf-crypto` [`rvf-runtime`](https://crates.io/crates/rvf-runtime) `rvf-kernel` `rvf-ebpf` `rvf-launch` `rvf-server` `rvf-import` [`rvf-cli`](https://crates.io/crates/rvf-cli) +**Rust crates** (22): [`rvf-types`](https://crates.io/crates/rvf-types) `rvf-wire` `rvf-manifest` `rvf-quant` `rvf-index` `rvf-crypto` [`rvf-runtime`](https://crates.io/crates/rvf-runtime) `rvf-kernel` `rvf-ebpf` `rvf-launch` `rvf-server` `rvf-import` [`rvf-cli`](https://crates.io/crates/rvf-cli) `rvf-wasm` `rvf-solver-wasm` `rvf-node` + 6 adapters (claude-flow, agentdb, ospipe, agentic-flow, rvlite, sona) **npm packages** (4): [`@ruvector/rvf`](https://www.npmjs.com/package/@ruvector/rvf) [`@ruvector/rvf-node`](https://www.npmjs.com/package/@ruvector/rvf-node) [`@ruvector/rvf-wasm`](https://www.npmjs.com/package/@ruvector/rvf-wasm) [`@ruvector/rvf-mcp-server`](https://www.npmjs.com/package/@ruvector/rvf-mcp-server) @@ -247,7 +247,7 @@ npx @ruvector/rvf-mcp-server --transport stdio # MCP server for AI agents - **ADR-030**: [Cognitive Container Architecture](./docs/adr/ADR-030-rvf-cognitive-container.md) - **ADR-031**: [COW Branching & Real Containers](./docs/adr/ADR-031-rvcow-branching-and-real-cognitive-containers.md) - **ADR-042**: [Security RVF — AIDefence + TEE](./docs/adr/ADR-042-Security-RVF-AIDefence-TEE.md) -- **46 runnable examples**: [examples/rvf/examples/](./examples/rvf/examples/) +- **56 runnable examples**: [examples/rvf/examples/](./examples/rvf/examples/) @@ -355,7 +355,7 @@ npx ruvector | **Self-Learning (GNN)** | ✅ | ❌ | ❌ | ❌ | ❌ | | **Runtime Adaptation (SONA)** | ✅ LoRA+EWC++ | ❌ | ❌ | ❌ | ❌ | | **AI Agent Routing** | ✅ Tiny Dancer | ❌ | ❌ | ❌ | ❌ | -| **Attention Mechanisms** | ✅ 40 types | ❌ | ❌ | ❌ | ❌ | +| **Attention Mechanisms** | ✅ 46 types | ❌ | ❌ | ❌ | ❌ | | **Coherence Gate** | ✅ Prime-Radiant | ❌ | ❌ | ❌ | ❌ | | **Hyperbolic Embeddings** | ✅ Poincaré+Lorentz | ❌ | ❌ | ❌ | ❌ | | **Local Embeddings** | ✅ 8+ models | ❌ | ❌ | ❌ | ❌ | @@ -518,7 +518,7 @@ npx @ruvector/cli hooks install # Configure for Claude Code | Feature | What It Does | Why It Matters | |---------|--------------|----------------| -| **40 Mechanisms** | Dot-product, multi-head, flash, linear, sparse, cross-attention, CGT sheaf | Cover all transformer and GNN use cases | +| **46 Mechanisms** | Dot-product, multi-head, flash, linear, sparse, cross-attention, CGT sheaf | Cover all transformer and GNN use cases | | **Graph Attention** | RoPE, edge-featured, local-global, neighborhood | Purpose-built for graph neural networks | | **Hyperbolic Attention** | Poincaré ball operations, curved-space math | Better embeddings for hierarchical data | | **SIMD Optimized** | Native Rust with AVX2/NEON acceleration | 2-10x faster than pure JS | @@ -1187,7 +1187,7 @@ await dag.execute(); |---------|-------------|---------|-----------| | [@ruvector/tiny-dancer](https://www.npmjs.com/package/@ruvector/tiny-dancer) | FastGRNN neural routing | [![npm](https://img.shields.io/npm/v/@ruvector/tiny-dancer.svg)](https://www.npmjs.com/package/@ruvector/tiny-dancer) | [![downloads](https://img.shields.io/npm/dt/@ruvector/tiny-dancer.svg)](https://www.npmjs.com/package/@ruvector/tiny-dancer) | | [@ruvector/router](https://www.npmjs.com/package/@ruvector/router) | Semantic router + HNSW | [![npm](https://img.shields.io/npm/v/@ruvector/router.svg)](https://www.npmjs.com/package/@ruvector/router) | [![downloads](https://img.shields.io/npm/dt/@ruvector/router.svg)](https://www.npmjs.com/package/@ruvector/router) | -| [@ruvector/attention](https://www.npmjs.com/package/@ruvector/attention) | 40+ attention mechanisms | [![npm](https://img.shields.io/npm/v/@ruvector/attention.svg)](https://www.npmjs.com/package/@ruvector/attention) | [![downloads](https://img.shields.io/npm/dt/@ruvector/attention.svg)](https://www.npmjs.com/package/@ruvector/attention) | +| [@ruvector/attention](https://www.npmjs.com/package/@ruvector/attention) | 46 attention mechanisms | [![npm](https://img.shields.io/npm/v/@ruvector/attention.svg)](https://www.npmjs.com/package/@ruvector/attention) | [![downloads](https://img.shields.io/npm/dt/@ruvector/attention.svg)](https://www.npmjs.com/package/@ruvector/attention) | #### Learning & Neural @@ -1260,7 +1260,7 @@ await dag.execute(); | [@ruvector/wasm-unified](https://www.npmjs.com/package/@ruvector/wasm-unified) | Unified TypeScript API | [![npm](https://img.shields.io/npm/v/@ruvector/wasm-unified.svg)](https://www.npmjs.com/package/@ruvector/wasm-unified) | [![downloads](https://img.shields.io/npm/dt/@ruvector/wasm-unified.svg)](https://www.npmjs.com/package/@ruvector/wasm-unified) | | [@ruvector/gnn-wasm](https://www.npmjs.com/package/@ruvector/gnn-wasm) | GNN WASM bindings | [![npm](https://img.shields.io/npm/v/@ruvector/gnn-wasm.svg)](https://www.npmjs.com/package/@ruvector/gnn-wasm) | [![downloads](https://img.shields.io/npm/dt/@ruvector/gnn-wasm.svg)](https://www.npmjs.com/package/@ruvector/gnn-wasm) | | [@ruvector/attention-wasm](https://www.npmjs.com/package/@ruvector/attention-wasm) | Attention WASM bindings | [![npm](https://img.shields.io/npm/v/@ruvector/attention-wasm.svg)](https://www.npmjs.com/package/@ruvector/attention-wasm) | [![downloads](https://img.shields.io/npm/dt/@ruvector/attention-wasm.svg)](https://www.npmjs.com/package/@ruvector/attention-wasm) | -| [@ruvector/attention-unified-wasm](https://www.npmjs.com/package/@ruvector/attention-unified-wasm) | All 40+ attention mechanisms | [![npm](https://img.shields.io/npm/v/@ruvector/attention-unified-wasm.svg)](https://www.npmjs.com/package/@ruvector/attention-unified-wasm) | [![downloads](https://img.shields.io/npm/dt/@ruvector/attention-unified-wasm.svg)](https://www.npmjs.com/package/@ruvector/attention-unified-wasm) | +| [@ruvector/attention-unified-wasm](https://www.npmjs.com/package/@ruvector/attention-unified-wasm) | All 46 attention mechanisms | [![npm](https://img.shields.io/npm/v/@ruvector/attention-unified-wasm.svg)](https://www.npmjs.com/package/@ruvector/attention-unified-wasm) | [![downloads](https://img.shields.io/npm/dt/@ruvector/attention-unified-wasm.svg)](https://www.npmjs.com/package/@ruvector/attention-unified-wasm) | | [@ruvector/tiny-dancer-wasm](https://www.npmjs.com/package/@ruvector/tiny-dancer-wasm) | AI routing WASM | [![npm](https://img.shields.io/npm/v/@ruvector/tiny-dancer-wasm.svg)](https://www.npmjs.com/package/@ruvector/tiny-dancer-wasm) | [![downloads](https://img.shields.io/npm/dt/@ruvector/tiny-dancer-wasm.svg)](https://www.npmjs.com/package/@ruvector/tiny-dancer-wasm) | | [@ruvector/router-wasm](https://www.npmjs.com/package/@ruvector/router-wasm) | Semantic router WASM | [![npm](https://img.shields.io/npm/v/@ruvector/router-wasm.svg)](https://www.npmjs.com/package/@ruvector/router-wasm) | [![downloads](https://img.shields.io/npm/dt/@ruvector/router-wasm.svg)](https://www.npmjs.com/package/@ruvector/router-wasm) | | [@ruvector/learning-wasm](https://www.npmjs.com/package/@ruvector/learning-wasm) | Learning module WASM | [![npm](https://img.shields.io/npm/v/@ruvector/learning-wasm.svg)](https://www.npmjs.com/package/@ruvector/learning-wasm) | [![downloads](https://img.shields.io/npm/dt/@ruvector/learning-wasm.svg)](https://www.npmjs.com/package/@ruvector/learning-wasm) | @@ -1305,7 +1305,7 @@ All crates are published to [crates.io](https://crates.io) under the `ruvector-* | Crate | Description | crates.io | |-------|-------------|-----------| -| [ruvector-attention](./crates/ruvector-attention) | 40+ attention mechanisms (Flash, Hyperbolic, MoE, Graph) | [![crates.io](https://img.shields.io/crates/v/ruvector-attention.svg)](https://crates.io/crates/ruvector-attention) | +| [ruvector-attention](./crates/ruvector-attention) | 46 attention mechanisms (Flash, Hyperbolic, MoE, Graph) | [![crates.io](https://img.shields.io/crates/v/ruvector-attention.svg)](https://crates.io/crates/ruvector-attention) | | [ruvector-attention-node](./crates/ruvector-attention-node) | Node.js bindings for attention mechanisms | [![crates.io](https://img.shields.io/crates/v/ruvector-attention-node.svg)](https://crates.io/crates/ruvector-attention-node) | | [ruvector-attention-wasm](./crates/ruvector-attention-wasm) | WASM bindings for browser attention | [![crates.io](https://img.shields.io/crates/v/ruvector-attention-wasm.svg)](https://crates.io/crates/ruvector-attention-wasm) | | [ruvector-attention-cli](./crates/ruvector-attention-cli) | CLI for attention testing and benchmarking | [![crates.io](https://img.shields.io/crates/v/ruvector-attention-cli.svg)](https://crates.io/crates/ruvector-attention-cli) | diff --git a/crates/ruvector-attention-unified-wasm/src/graph.rs b/crates/ruvector-attention-unified-wasm/src/graph.rs index ff091c566..50f1ab85b 100644 --- a/crates/ruvector-attention-unified-wasm/src/graph.rs +++ b/crates/ruvector-attention-unified-wasm/src/graph.rs @@ -43,14 +43,10 @@ impl WasmGNNLayer { heads: usize, dropout: f32, ) -> Result { - if dropout < 0.0 || dropout > 1.0 { - return Err(JsError::new("Dropout must be between 0.0 and 1.0")); - } + let inner = RuvectorLayer::new(input_dim, hidden_dim, heads, dropout) + .map_err(|e| JsError::new(&e.to_string()))?; - Ok(WasmGNNLayer { - inner: RuvectorLayer::new(input_dim, hidden_dim, heads, dropout), - hidden_dim, - }) + Ok(WasmGNNLayer { inner, hidden_dim }) } /// Forward pass through the GNN layer @@ -378,6 +374,12 @@ mod tests { assert!(layer.is_err()); } + #[wasm_bindgen_test] + fn test_gnn_layer_invalid_heads() { + let layer = WasmGNNLayer::new(4, 7, 3, 0.1); + assert!(layer.is_err()); + } + #[wasm_bindgen_test] fn test_tensor_compress_creation() { let compressor = WasmTensorCompress::new(); diff --git a/crates/ruvector-cli/src/mcp/gnn_cache.rs b/crates/ruvector-cli/src/mcp/gnn_cache.rs index c9b933dfd..5313f0411 100644 --- a/crates/ruvector-cli/src/mcp/gnn_cache.rs +++ b/crates/ruvector-cli/src/mcp/gnn_cache.rs @@ -189,7 +189,8 @@ impl GnnCache { } // Create new layer - let layer = RuvectorLayer::new(input_dim, hidden_dim, heads, dropout); + let layer = RuvectorLayer::new(input_dim, hidden_dim, heads, dropout) + .expect("GNN layer cache: invalid layer configuration"); // Cache it { diff --git a/crates/ruvector-cli/tests/gnn_performance_test.rs b/crates/ruvector-cli/tests/gnn_performance_test.rs index 4e8413bea..cb8ae24bb 100644 --- a/crates/ruvector-cli/tests/gnn_performance_test.rs +++ b/crates/ruvector-cli/tests/gnn_performance_test.rs @@ -25,7 +25,7 @@ mod gnn_cache_tests { #[test] fn test_layer_creation_latency() { let start = Instant::now(); - let _layer = RuvectorLayer::new(128, 256, 4, 0.1); + let _layer = RuvectorLayer::new(128, 256, 4, 0.1).unwrap(); let elapsed = start.elapsed(); // Layer creation: 100ms in release, ~2000ms in debug @@ -48,7 +48,7 @@ mod gnn_cache_tests { /// Test that forward pass has acceptable latency #[test] fn test_forward_pass_latency() { - let layer = RuvectorLayer::new(128, 256, 4, 0.1); + let layer = RuvectorLayer::new(128, 256, 4, 0.1).unwrap(); let node = vec![0.5f32; 128]; let neighbors = vec![vec![0.3f32; 128], vec![0.7f32; 128]]; let weights = vec![0.5f32, 0.5f32]; @@ -83,7 +83,7 @@ mod gnn_cache_tests { /// Test batch operations performance #[test] fn test_batch_operations_performance() { - let layer = RuvectorLayer::new(64, 128, 2, 0.1); + let layer = RuvectorLayer::new(64, 128, 2, 0.1).unwrap(); // Create batch of operations let batch_size = 100; @@ -139,7 +139,7 @@ mod gnn_cache_tests { for (input, hidden, heads) in sizes { // Measure creation let start = Instant::now(); - let layer = RuvectorLayer::new(input, hidden, heads, 0.1); + let layer = RuvectorLayer::new(input, hidden, heads, 0.1).unwrap(); let create_ms = start.elapsed().as_secs_f64() * 1000.0; // Measure forward @@ -216,7 +216,7 @@ mod gnn_cache_integration { // First: measure time including layer creation let start_cold = Instant::now(); - let layer = RuvectorLayer::new(128, 256, 4, 0.1); + let layer = RuvectorLayer::new(128, 256, 4, 0.1).unwrap(); let node = vec![0.5f32; 128]; let neighbors = vec![vec![0.3f32; 128], vec![0.7f32; 128]]; let weights = vec![0.5f32, 0.5f32]; @@ -262,7 +262,7 @@ mod gnn_cache_integration { // Create layer once let start = Instant::now(); - let layer = RuvectorLayer::new(64, 128, 2, 0.1); + let layer = RuvectorLayer::new(64, 128, 2, 0.1).unwrap(); let creation_time = start.elapsed(); let node = vec![0.5f32; 64]; diff --git a/crates/ruvector-crv/src/stage_iii.rs b/crates/ruvector-crv/src/stage_iii.rs index 4dd906089..d0dfcd0f8 100644 --- a/crates/ruvector-crv/src/stage_iii.rs +++ b/crates/ruvector-crv/src/stage_iii.rs @@ -31,7 +31,9 @@ impl StageIIIEncoder { pub fn new(config: &CrvConfig) -> Self { let dim = config.dimensions; // Single GNN layer: input_dim -> hidden_dim, 1 head - let gnn_layer = RuvectorLayer::new(dim, dim, 1, 0.0); + // heads=1 always divides any dim, and dropout=0.0 is always valid + let gnn_layer = RuvectorLayer::new(dim, dim, 1, 0.0) + .expect("dim is always divisible by 1 head"); Self { dim, gnn_layer } } diff --git a/crates/ruvector-gnn-node/npm/darwin-arm64/package.json b/crates/ruvector-gnn-node/npm/darwin-arm64/package.json index 0be7205fa..90815a495 100644 --- a/crates/ruvector-gnn-node/npm/darwin-arm64/package.json +++ b/crates/ruvector-gnn-node/npm/darwin-arm64/package.json @@ -1,6 +1,6 @@ { "name": "@ruvector/gnn-darwin-arm64", - "version": "0.1.24", + "version": "0.1.25", "os": [ "darwin" ], diff --git a/crates/ruvector-gnn-node/npm/darwin-x64/package.json b/crates/ruvector-gnn-node/npm/darwin-x64/package.json index 3f1a3e23b..08dc6ccee 100644 --- a/crates/ruvector-gnn-node/npm/darwin-x64/package.json +++ b/crates/ruvector-gnn-node/npm/darwin-x64/package.json @@ -1,6 +1,6 @@ { "name": "@ruvector/gnn-darwin-x64", - "version": "0.1.24", + "version": "0.1.25", "os": [ "darwin" ], diff --git a/crates/ruvector-gnn-node/npm/linux-arm64-gnu/package.json b/crates/ruvector-gnn-node/npm/linux-arm64-gnu/package.json index 4e9e1bb07..6f80525ad 100644 --- a/crates/ruvector-gnn-node/npm/linux-arm64-gnu/package.json +++ b/crates/ruvector-gnn-node/npm/linux-arm64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@ruvector/gnn-linux-arm64-gnu", - "version": "0.1.24", + "version": "0.1.25", "os": [ "linux" ], diff --git a/crates/ruvector-gnn-node/npm/linux-arm64-musl/package.json b/crates/ruvector-gnn-node/npm/linux-arm64-musl/package.json index 664314fad..7fdc9bd54 100644 --- a/crates/ruvector-gnn-node/npm/linux-arm64-musl/package.json +++ b/crates/ruvector-gnn-node/npm/linux-arm64-musl/package.json @@ -1,6 +1,6 @@ { "name": "@ruvector/gnn-linux-arm64-musl", - "version": "0.1.24", + "version": "0.1.25", "os": [ "linux" ], diff --git a/crates/ruvector-gnn-node/npm/linux-x64-gnu/package.json b/crates/ruvector-gnn-node/npm/linux-x64-gnu/package.json index c7470e026..4e609bea5 100644 --- a/crates/ruvector-gnn-node/npm/linux-x64-gnu/package.json +++ b/crates/ruvector-gnn-node/npm/linux-x64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@ruvector/gnn-linux-x64-gnu", - "version": "0.1.24", + "version": "0.1.25", "os": [ "linux" ], diff --git a/crates/ruvector-gnn-node/npm/linux-x64-musl/package.json b/crates/ruvector-gnn-node/npm/linux-x64-musl/package.json index dd5a6528a..3221bd169 100644 --- a/crates/ruvector-gnn-node/npm/linux-x64-musl/package.json +++ b/crates/ruvector-gnn-node/npm/linux-x64-musl/package.json @@ -1,6 +1,6 @@ { "name": "@ruvector/gnn-linux-x64-musl", - "version": "0.1.24", + "version": "0.1.25", "os": [ "linux" ], diff --git a/crates/ruvector-gnn-node/npm/win32-x64-msvc/package.json b/crates/ruvector-gnn-node/npm/win32-x64-msvc/package.json index 6872614b1..32196571a 100644 --- a/crates/ruvector-gnn-node/npm/win32-x64-msvc/package.json +++ b/crates/ruvector-gnn-node/npm/win32-x64-msvc/package.json @@ -1,6 +1,6 @@ { "name": "@ruvector/gnn-win32-x64-msvc", - "version": "0.1.24", + "version": "0.1.25", "os": [ "win32" ], diff --git a/crates/ruvector-gnn-node/package.json b/crates/ruvector-gnn-node/package.json index 438bf8f28..b1df4e9b7 100644 --- a/crates/ruvector-gnn-node/package.json +++ b/crates/ruvector-gnn-node/package.json @@ -1,6 +1,6 @@ { "name": "@ruvector/gnn", - "version": "0.1.24", + "version": "0.1.25", "description": "Graph Neural Network capabilities for Ruvector - Node.js bindings", "main": "index.js", "types": "index.d.ts", @@ -53,12 +53,12 @@ "access": "public" }, "optionalDependencies": { - "@ruvector/gnn-win32-x64-msvc": "0.1.24", - "@ruvector/gnn-darwin-x64": "0.1.24", - "@ruvector/gnn-linux-x64-gnu": "0.1.24", - "@ruvector/gnn-linux-x64-musl": "0.1.24", - "@ruvector/gnn-linux-arm64-gnu": "0.1.24", - "@ruvector/gnn-linux-arm64-musl": "0.1.24", - "@ruvector/gnn-darwin-arm64": "0.1.24" + "@ruvector/gnn-linux-x64-gnu": "0.1.25", + "@ruvector/gnn-linux-x64-musl": "0.1.25", + "@ruvector/gnn-linux-arm64-gnu": "0.1.25", + "@ruvector/gnn-linux-arm64-musl": "0.1.25", + "@ruvector/gnn-darwin-x64": "0.1.25", + "@ruvector/gnn-darwin-arm64": "0.1.25", + "@ruvector/gnn-win32-x64-msvc": "0.1.25" } } \ No newline at end of file diff --git a/crates/ruvector-gnn-node/src/lib.rs b/crates/ruvector-gnn-node/src/lib.rs index 97577e141..647c337fa 100644 --- a/crates/ruvector-gnn-node/src/lib.rs +++ b/crates/ruvector-gnn-node/src/lib.rs @@ -44,21 +44,15 @@ impl RuvectorLayer { /// ``` #[napi(constructor)] pub fn new(input_dim: u32, hidden_dim: u32, heads: u32, dropout: f64) -> Result { - if dropout < 0.0 || dropout > 1.0 { - return Err(Error::new( - Status::InvalidArg, - "Dropout must be between 0.0 and 1.0".to_string(), - )); - } + let inner = RustRuvectorLayer::new( + input_dim as usize, + hidden_dim as usize, + heads as usize, + dropout as f32, + ) + .map_err(|e| Error::new(Status::InvalidArg, e.to_string()))?; - Ok(Self { - inner: RustRuvectorLayer::new( - input_dim as usize, - hidden_dim as usize, - heads as usize, - dropout as f32, - ), - }) + Ok(Self { inner }) } /// Forward pass through the GNN layer diff --git a/crates/ruvector-gnn-wasm/src/lib.rs b/crates/ruvector-gnn-wasm/src/lib.rs index 2bf7c9dc3..6fad92a4a 100644 --- a/crates/ruvector-gnn-wasm/src/lib.rs +++ b/crates/ruvector-gnn-wasm/src/lib.rs @@ -81,14 +81,10 @@ impl JsRuvectorLayer { heads: usize, dropout: f32, ) -> Result { - if dropout < 0.0 || dropout > 1.0 { - return Err(JsValue::from_str("Dropout must be between 0.0 and 1.0")); - } + let inner = RuvectorLayer::new(input_dim, hidden_dim, heads, dropout) + .map_err(|e| JsValue::from_str(&e.to_string()))?; - Ok(JsRuvectorLayer { - inner: RuvectorLayer::new(input_dim, hidden_dim, heads, dropout), - hidden_dim, - }) + Ok(JsRuvectorLayer { inner, hidden_dim }) } /// Forward pass through the GNN layer diff --git a/crates/ruvector-gnn/src/layer.rs b/crates/ruvector-gnn/src/layer.rs index fa7db02a1..61afb4cbb 100644 --- a/crates/ruvector-gnn/src/layer.rs +++ b/crates/ruvector-gnn/src/layer.rs @@ -3,6 +3,7 @@ //! This module implements graph neural network layers that operate on HNSW graph structure, //! including attention mechanisms, normalization, and gated recurrent updates. +use crate::error::GnnError; use ndarray::{Array1, Array2, ArrayView1}; use rand::Rng; use rand_distr::{Distribution, Normal}; @@ -93,22 +94,27 @@ pub struct MultiHeadAttention { impl MultiHeadAttention { /// Create a new multi-head attention layer - pub fn new(embed_dim: usize, num_heads: usize) -> Self { - assert!( - embed_dim % num_heads == 0, - "Embedding dimension must be divisible by number of heads" - ); + /// + /// # Errors + /// Returns `GnnError::LayerConfig` if `embed_dim` is not divisible by `num_heads`. + pub fn new(embed_dim: usize, num_heads: usize) -> Result { + if embed_dim % num_heads != 0 { + return Err(GnnError::layer_config(format!( + "Embedding dimension ({}) must be divisible by number of heads ({})", + embed_dim, num_heads + ))); + } let head_dim = embed_dim / num_heads; - Self { + Ok(Self { num_heads, head_dim, q_linear: Linear::new(embed_dim, embed_dim), k_linear: Linear::new(embed_dim, embed_dim), v_linear: Linear::new(embed_dim, embed_dim), out_linear: Linear::new(embed_dim, embed_dim), - } + }) } /// Forward pass: compute multi-head attention @@ -334,20 +340,31 @@ impl RuvectorLayer { /// * `hidden_dim` - Dimension of hidden representations /// * `heads` - Number of attention heads /// * `dropout` - Dropout rate (0.0 to 1.0) - pub fn new(input_dim: usize, hidden_dim: usize, heads: usize, dropout: f32) -> Self { - assert!( - dropout >= 0.0 && dropout <= 1.0, - "Dropout must be between 0.0 and 1.0" - ); + /// + /// # Errors + /// Returns `GnnError::LayerConfig` if `dropout` is outside `[0.0, 1.0]` or + /// if `hidden_dim` is not divisible by `heads`. + pub fn new( + input_dim: usize, + hidden_dim: usize, + heads: usize, + dropout: f32, + ) -> Result { + if !(0.0..=1.0).contains(&dropout) { + return Err(GnnError::layer_config(format!( + "Dropout must be between 0.0 and 1.0, got {}", + dropout + ))); + } - Self { + Ok(Self { w_msg: Linear::new(input_dim, hidden_dim), w_agg: Linear::new(hidden_dim, hidden_dim), w_update: GRUCell::new(hidden_dim, hidden_dim), - attention: MultiHeadAttention::new(hidden_dim, heads), + attention: MultiHeadAttention::new(hidden_dim, heads)?, norm: LayerNorm::new(hidden_dim, 1e-5), dropout, - } + }) } /// Forward pass through the GNN layer @@ -464,7 +481,7 @@ mod tests { #[test] fn test_multihead_attention() { - let attention = MultiHeadAttention::new(8, 2); + let attention = MultiHeadAttention::new(8, 2).unwrap(); let query = vec![0.5; 8]; let keys = vec![vec![0.3; 8], vec![0.7; 8]]; let values = vec![vec![0.2; 8], vec![0.8; 8]]; @@ -473,6 +490,14 @@ mod tests { assert_eq!(output.len(), 8); } + #[test] + fn test_multihead_attention_invalid_dims() { + let result = MultiHeadAttention::new(10, 3); + assert!(result.is_err()); + let err = result.unwrap_err().to_string(); + assert!(err.contains("divisible")); + } + #[test] fn test_gru_cell() { let gru = GRUCell::new(4, 8); @@ -485,7 +510,7 @@ mod tests { #[test] fn test_ruvector_layer() { - let layer = RuvectorLayer::new(4, 8, 2, 0.1); + let layer = RuvectorLayer::new(4, 8, 2, 0.1).unwrap(); let node = vec![1.0, 2.0, 3.0, 4.0]; let neighbors = vec![vec![0.5, 1.0, 1.5, 2.0], vec![2.0, 3.0, 4.0, 5.0]]; @@ -497,7 +522,7 @@ mod tests { #[test] fn test_ruvector_layer_no_neighbors() { - let layer = RuvectorLayer::new(4, 8, 2, 0.1); + let layer = RuvectorLayer::new(4, 8, 2, 0.1).unwrap(); let node = vec![1.0, 2.0, 3.0, 4.0]; let neighbors: Vec> = vec![]; @@ -506,4 +531,16 @@ mod tests { let output = layer.forward(&node, &neighbors, &weights); assert_eq!(output.len(), 8); } + + #[test] + fn test_ruvector_layer_invalid_dropout() { + let result = RuvectorLayer::new(4, 8, 2, 1.5); + assert!(result.is_err()); + } + + #[test] + fn test_ruvector_layer_invalid_heads() { + let result = RuvectorLayer::new(4, 7, 3, 0.1); + assert!(result.is_err()); + } } diff --git a/crates/ruvector-gnn/src/mmap.rs b/crates/ruvector-gnn/src/mmap.rs index 38582bf02..559a58a59 100644 --- a/crates/ruvector-gnn/src/mmap.rs +++ b/crates/ruvector-gnn/src/mmap.rs @@ -883,9 +883,9 @@ mod tests { let accumulator = MmapGradientAccumulator::new(&path, 128, 100).unwrap(); - assert_eq!(accumulator.grad_offset(0), 0); - assert_eq!(accumulator.grad_offset(1), 128 * 4); // 128 floats * 4 bytes - assert_eq!(accumulator.grad_offset(5), 128 * 4 * 5); + assert_eq!(accumulator.grad_offset(0), Some(0)); + assert_eq!(accumulator.grad_offset(1), Some(128 * 4)); // 128 floats * 4 bytes + assert_eq!(accumulator.grad_offset(5), Some(128 * 4 * 5)); } #[test] diff --git a/crates/ruvector-gnn/src/search.rs b/crates/ruvector-gnn/src/search.rs index 00bbfde74..71239355c 100644 --- a/crates/ruvector-gnn/src/search.rs +++ b/crates/ruvector-gnn/src/search.rs @@ -237,7 +237,7 @@ mod tests { // Single GNN layer that maintains dimension let gnn_layers = vec![ - RuvectorLayer::new(2, 2, 1, 0.0), // input_dim, hidden_dim, heads, dropout + RuvectorLayer::new(2, 2, 1, 0.0).unwrap(), // input_dim, hidden_dim, heads, dropout ]; let result = hierarchical_forward(&query, &layer_embeddings, &gnn_layers); diff --git a/crates/ruvector-graph-transformer/src/verified_training.rs b/crates/ruvector-graph-transformer/src/verified_training.rs index 19620719c..8d9e8afff 100644 --- a/crates/ruvector-graph-transformer/src/verified_training.rs +++ b/crates/ruvector-graph-transformer/src/verified_training.rs @@ -959,7 +959,7 @@ mod tests { }, ]; let mut trainer = VerifiedTrainer::new(4, 8, config, invariants); - let layer = RuvectorLayer::new(4, 8, 2, 0.1); + let layer = RuvectorLayer::new(4, 8, 2, 0.1).unwrap(); let (features, neighbors, weights, targets) = test_data(); for step_num in 1..=10 { @@ -1015,7 +1015,7 @@ mod tests { }]; let mut trainer = VerifiedTrainer::new(4, 8, config, invariants); - let layer = RuvectorLayer::new(4, 8, 2, 0.1); + let layer = RuvectorLayer::new(4, 8, 2, 0.1).unwrap(); // Use features that produce large gradients let features = vec![vec![10.0, 10.0, 10.0, 10.0]]; @@ -1061,7 +1061,7 @@ mod tests { }]; let mut trainer = VerifiedTrainer::new(4, 8, config, invariants); - let layer = RuvectorLayer::new(4, 8, 2, 0.0); + let layer = RuvectorLayer::new(4, 8, 2, 0.0).unwrap(); let features = vec![vec![1.0, 2.0, 3.0, 4.0]]; let neighbors = vec![vec![vec![0.5, 1.0, 1.5, 2.0]]]; @@ -1111,7 +1111,7 @@ mod tests { }]; let mut trainer = VerifiedTrainer::new(4, 8, config, invariants); - let layer = RuvectorLayer::new(4, 8, 2, 0.0); + let layer = RuvectorLayer::new(4, 8, 2, 0.0).unwrap(); let (features, neighbors, weights_data, targets) = test_data(); // Run 3 steps @@ -1188,7 +1188,7 @@ mod tests { }]; let mut trainer = VerifiedTrainer::new(4, 8, config, invariants); - let layer = RuvectorLayer::new(4, 8, 2, 0.0); + let layer = RuvectorLayer::new(4, 8, 2, 0.0).unwrap(); let (features, neighbors, weights_data, targets) = test_data(); let result = trainer @@ -1310,7 +1310,7 @@ mod tests { rollback_strategy: RollbackStrategy::DeltaApply, }]; let mut trainer = VerifiedTrainer::new(4, 8, config, invariants); - let layer = RuvectorLayer::new(4, 8, 2, 0.0); + let layer = RuvectorLayer::new(4, 8, 2, 0.0).unwrap(); let (features, neighbors, weights, targets) = test_data(); let _ = trainer.train_step(&features, &neighbors, &weights, &targets, &layer); @@ -1342,7 +1342,7 @@ mod tests { }]; let mut trainer = VerifiedTrainer::new(4, 8, config, invariants); - let layer = RuvectorLayer::new(4, 8, 2, 0.0); + let layer = RuvectorLayer::new(4, 8, 2, 0.0).unwrap(); let (features, neighbors, weights, targets) = test_data(); // During warmup (steps 0..4), violations should NOT block commit @@ -1390,7 +1390,7 @@ mod tests { ]; let mut trainer = VerifiedTrainer::new(4, 8, config, invariants); - let layer = RuvectorLayer::new(4, 8, 2, 0.1); + let layer = RuvectorLayer::new(4, 8, 2, 0.1).unwrap(); let (features, neighbors, weights, targets) = test_data(); let result = trainer diff --git a/crates/ruvector-graph-transformer/tests/integration.rs b/crates/ruvector-graph-transformer/tests/integration.rs index 6effbb6de..f28c25cc6 100644 --- a/crates/ruvector-graph-transformer/tests/integration.rs +++ b/crates/ruvector-graph-transformer/tests/integration.rs @@ -342,7 +342,7 @@ mod verified_training_tests { ]; let mut trainer = VerifiedTrainer::new(4, 8, config, invariants); - let layer = RuvectorLayer::new(4, 8, 2, 0.0); + let layer = RuvectorLayer::new(4, 8, 2, 0.0).unwrap(); let features = vec![vec![1.0, 0.0, 0.0, 0.0]]; let neighbors = vec![vec![]]; let weights = vec![vec![]]; @@ -373,7 +373,7 @@ mod verified_training_tests { ]; let mut trainer = VerifiedTrainer::new(4, 8, config, invariants); - let layer = RuvectorLayer::new(4, 8, 2, 0.0); + let layer = RuvectorLayer::new(4, 8, 2, 0.0).unwrap(); for _ in 0..3 { let result = trainer.train_step( diff --git a/docs/README.md b/docs/README.md index 033490334..e92f851d7 100644 --- a/docs/README.md +++ b/docs/README.md @@ -140,4 +140,4 @@ docs/ --- -**Last Updated**: 2026-01-21 | **Version**: 0.1.29 | **Status**: Production Ready +**Last Updated**: 2026-02-26 | **Version**: 2.0.4 (core) / 0.1.100 (npm) | **Status**: Production Ready diff --git a/docs/guides/ADVANCED_FEATURES.md b/docs/guides/ADVANCED_FEATURES.md index 689d98393..fe943c20a 100644 --- a/docs/guides/ADVANCED_FEATURES.md +++ b/docs/guides/ADVANCED_FEATURES.md @@ -10,6 +10,14 @@ This guide covers advanced features of Ruvector including hybrid search, filtere 4. [Product Quantization](#product-quantization) 5. [Conformal Prediction](#conformal-prediction) 6. [Performance Optimization](#performance-optimization) +7. [Collection Management](#collection-management) +8. [Additional VectorDB Operations](#additional-vectordb-operations) +9. [Server REST API](#server-rest-api) +10. [Advanced Filter Expressions](#advanced-filter-expressions) +11. [Graph Database](#graph-database) +12. [Metrics & Health Monitoring](#metrics--health-monitoring) +13. [RVF Format Capabilities](#rvf-format-capabilities) +14. [Additional Crates](#additional-crates) ## Hybrid Search @@ -224,10 +232,10 @@ use ruvector_core::{EnhancedPQ, PQConfig}; fn product_quantization_example() -> Result<(), Box> { let mut options = DbOptions::default(); options.dimensions = 128; - options.quantization = QuantizationConfig::Product { + options.quantization = Some(QuantizationConfig::Product { subspaces: 16, // Split into 16 subvectors of 8D each k: 256, // 256 centroids per subspace - }; + }); let db = VectorDB::new(options)?; @@ -360,7 +368,7 @@ cargo build --release -vv | grep target-cpu ```rust let mut options = DbOptions::default(); -options.mmap_vectors = true; // Enable memory mapping +// options.mmap_vectors = true; // Enable memory mapping (if supported by storage backend) let db = VectorDB::new(options)?; ``` @@ -408,26 +416,26 @@ let results: Vec> = queries ```rust // For speed (lower recall) -options.hnsw.ef_search = 50; +options.hnsw_config.as_mut().unwrap().ef_search = 50; // For accuracy (slower) -options.hnsw.ef_search = 500; +options.hnsw_config.as_mut().unwrap().ef_search = 500; // Balanced (recommended) -options.hnsw.ef_search = 100; +options.hnsw_config.as_mut().unwrap().ef_search = 100; ``` ### 6. Quantization ```rust // 4x compression, 97-99% recall -options.quantization = QuantizationConfig::Scalar; +options.quantization = Some(QuantizationConfig::Scalar); // 16x compression, 90-95% recall -options.quantization = QuantizationConfig::Product { +options.quantization = Some(QuantizationConfig::Product { subspaces: 16, k: 256, -}; +}); ``` ### 7. Distance Metric Selection @@ -463,18 +471,17 @@ fn advanced_demo() -> Result<(), Box> { let mut options = DbOptions::default(); options.dimensions = 384; options.storage_path = "./advanced_db.db".to_string(); - options.hnsw = HnswConfig { + options.hnsw_config = Some(HnswConfig { m: 64, ef_construction: 400, ef_search: 200, max_elements: 10_000_000, - }; + }); options.distance_metric = DistanceMetric::Cosine; - options.quantization = QuantizationConfig::Product { + options.quantization = Some(QuantizationConfig::Product { subspaces: 16, k: 256, - }; - options.mmap_vectors = true; + }); let db = VectorDB::new(options)?; @@ -528,6 +535,294 @@ fn advanced_demo() -> Result<(), Box> { } ``` +## Collection Management + +Organize vectors into named collections with alias support. + +### Rust + +```rust +use ruvector_collections::CollectionManager; + +let manager = CollectionManager::new("./data")?; + +// Create collections +manager.create_collection("products", CollectionConfig { + dimensions: 384, + distance_metric: "cosine".into(), + ..Default::default() +})?; + +// List, delete, stats +let names = manager.list_collections()?; +let stats = manager.collection_stats("products")?; +println!("Vectors: {}, Size: {} bytes", stats.vectors_count, stats.disk_size_bytes); + +// Aliases — point multiple names at one collection +manager.create_alias("shop", "products")?; +manager.list_aliases()?; // [("shop", "products")] +manager.delete_alias("shop")?; +``` + +### Node.js + +```javascript +const { CollectionManager } = require('ruvector'); + +const mgr = new CollectionManager('./data'); + +mgr.createCollection('products', { dimensions: 384, distanceMetric: 'Cosine' }); +const collections = mgr.listCollections(); +const stats = mgr.getStats('products'); +console.log(`Vectors: ${stats.vectorsCount}, RAM: ${stats.ramSizeBytes}`); + +mgr.createAlias('shop', 'products'); +mgr.listAliases(); +mgr.deleteAlias('shop'); +``` + +## Additional VectorDB Operations + +Beyond `insert`, `search`, and `insert_batch`, the Node.js bindings expose: + +```javascript +const { VectorDB } = require('ruvector'); +const db = new VectorDB({ dimensions: 128, storagePath: './db' }); + +// Retrieve a single vector +const entry = db.get('vec_0001'); + +// Delete a vector +db.delete('vec_0001'); + +// Count vectors +const count = db.len(); +const empty = db.isEmpty(); +``` + +## Server REST API + +`ruvector-server` exposes an Axum-based HTTP API for remote access. + +### Endpoints + +| Method | Path | Description | +|--------|------|-------------| +| `POST` | `/collections` | Create a collection | +| `GET` | `/collections` | List all collections | +| `GET` | `/collections/:name` | Get collection info | +| `DELETE` | `/collections/:name` | Delete a collection | +| `PUT` | `/collections/:name/points` | Upsert vectors | +| `POST` | `/collections/:name/points/search` | Search (with optional `score_threshold`) | +| `GET` | `/collections/:name/points/:id` | Retrieve a point by ID | +| `GET` | `/health` | Health check | +| `GET` | `/ready` | Readiness probe | + +### Example — cURL + +```bash +# Create a collection +curl -X POST http://localhost:8080/collections \ + -H 'Content-Type: application/json' \ + -d '{"name": "docs", "dimensions": 384, "distanceMetric": "cosine"}' + +# Upsert vectors +curl -X PUT http://localhost:8080/collections/docs/points \ + -H 'Content-Type: application/json' \ + -d '{"points": [{"id": "doc_1", "vector": [0.1, ...], "metadata": {"title": "Hello"}}]}' + +# Search +curl -X POST http://localhost:8080/collections/docs/points/search \ + -H 'Content-Type: application/json' \ + -d '{"vector": [0.1, ...], "k": 10, "scoreThreshold": 0.8}' +``` + +## Advanced Filter Expressions + +`ruvector-filter` supports rich filter expressions beyond simple equality. + +### Available Operators + +| Operator | Description | Example | +|----------|-------------|---------| +| `eq` | Equality | `FilterExpression::eq("status", "active")` | +| `ne` | Not equal | `FilterExpression::ne("status", "deleted")` | +| `gt`, `gte` | Greater than (or equal) | `FilterExpression::gte("score", 0.8)` | +| `lt`, `lte` | Less than (or equal) | `FilterExpression::lt("price", 100)` | +| `in_values` | Set membership | `FilterExpression::in_values("tag", vec!["a","b"])` | +| `match_text` | Text search | `FilterExpression::match_text("content", "rust")` | +| `geo_radius` | Geospatial radius | `FilterExpression::geo_radius("location", 37.7, -122.4, 5000.0)` | +| `and`, `or` | Boolean combinators | `FilterExpression::and(vec![f1, f2])` | +| `not` | Negation | `FilterExpression::not(expr)` | + +### Payload Indexing + +Create field indices for fast filtered search: + +```rust +use ruvector_filter::{PayloadIndexManager, IndexType}; + +let mut index_mgr = PayloadIndexManager::new(); +index_mgr.create_index("category", IndexType::Keyword)?; +index_mgr.create_index("price", IndexType::Float)?; +index_mgr.create_index("location", IndexType::Geo)?; +index_mgr.create_index("description", IndexType::Text)?; + +// Index a payload +index_mgr.index_payload("doc_1", &json!({ + "category": "electronics", + "price": 299.99, + "location": {"lat": 37.7749, "lon": -122.4194}, + "description": "High-performance vector database" +}))?; +``` + +### Node.js + +```javascript +const results = await db.search({ + vector: queryVec, + k: 10, + filter: { + and: [ + { field: 'category', op: 'eq', value: 'electronics' }, + { field: 'price', op: 'lte', value: 500 } + ] + } +}); +``` + +## Graph Database + +`ruvector-graph` provides a full property graph database with Cypher query support. + +### CLI + +```bash +# Create a graph database +ruvector graph create --db ./graph.db --dimensions 128 + +# Run Cypher queries +ruvector graph query --db ./graph.db \ + --query "CREATE (n:Person {name: 'Alice', age: 30})" + +ruvector graph query --db ./graph.db \ + --query "MATCH (n:Person) WHERE n.age > 25 RETURN n.name, n.age" + +# Interactive shell +ruvector graph shell --db ./graph.db + +# Start graph server +ruvector graph serve --db ./graph.db --port 8081 +``` + +### Rust API + +```rust +use ruvector_graph::{GraphDB, NodeBuilder, EdgeBuilder}; + +let db = GraphDB::new("./graph.db")?; + +// Create nodes +let alice = NodeBuilder::new("Person") + .property("name", "Alice") + .property("age", 30) + .build(); +let bob = NodeBuilder::new("Person") + .property("name", "Bob") + .build(); + +let alice_id = db.insert_node(alice)?; +let bob_id = db.insert_node(bob)?; + +// Create edges +let edge = EdgeBuilder::new("KNOWS", alice_id, bob_id) + .property("since", 2024) + .build(); +db.insert_edge(edge)?; + +// Cypher queries +let results = db.execute_cypher("MATCH (a:Person)-[:KNOWS]->(b) RETURN a.name, b.name")?; +``` + +### Hybrid Vector + Graph + +```rust +use ruvector_graph::HybridIndex; + +// Combine vector similarity with graph traversal +let hybrid = HybridIndex::new(&graph_db, &vector_db)?; +let results = hybrid.semantic_search(query_vector, 10)?; +``` + +## Metrics & Health Monitoring + +`ruvector-metrics` provides Prometheus-compatible metrics. + +### Exposed Metrics + +| Metric | Type | Description | +|--------|------|-------------| +| `ruvector_search_requests_total` | Counter | Searches by collection/status | +| `ruvector_search_latency_seconds` | Histogram | Search latency | +| `ruvector_insert_requests_total` | Counter | Inserts by collection | +| `ruvector_insert_latency_seconds` | Histogram | Insert latency | +| `ruvector_vectors_total` | Gauge | Total vectors per collection | +| `ruvector_collections_total` | Gauge | Number of collections | +| `ruvector_memory_usage_bytes` | Gauge | Memory utilization | +| `ruvector_uptime_seconds` | Gauge | Server uptime | + +### Node.js + +```javascript +const metrics = db.getMetrics(); // Prometheus text format +const health = db.getHealth(); // { status, uptime, ... } +``` + +## RVF Format Capabilities + +The RVF binary format (via `rvf-runtime`) provides capabilities beyond basic vector storage. See [`examples/rvf/`](../../examples/rvf/) for complete working examples. + +### Key Capabilities + +| Feature | API | Description | +|---------|-----|-------------| +| Quality envelopes | `query_with_envelope()` | Response quality, HNSW vs safety-net stats, budget tracking | +| Audited queries | `query_audited()` | Auto-appends witness entry per search for compliance | +| Membership filters | `MembershipFilter` | Bitmap-based tenant isolation (include/exclude modes) | +| DoS hardening | `BudgetTokenBucket`, `NegativeCache`, `ProofOfWork` | Three-layer defense | +| Adversarial detection | `is_degenerate_distribution()`, `centroid_distance_cv()` | Detects uniform attack vectors | +| WASM embedding | `embed_wasm()` / `extract_wasm()` | Self-bootstrapping query engine | +| Kernel embedding | `embed_kernel()` / `extract_kernel()` | Linux image with cmdline | +| eBPF embedding | `embed_ebpf()` / `extract_ebpf()` | Socket filter programs | +| Dashboard embedding | `embed_dashboard()` / `extract_dashboard()` | HTML/JS bundles | +| Delete + compact | `delete()` + `compact()` | Soft-delete with space reclamation | +| Lineage derivation | `derive()` | Parent-child snapshots with depth tracking | +| COW branching | `freeze()` + `branch()` | Copy-on-write staging environments | +| AGI containers | `AgiContainerBuilder` | Self-describing agent manifests | +| Witness chains | `create_witness_chain()` | Cryptographic audit trails (SHAKE256) | +| Segment directory | `segment_dir()` | Enumerate all segments in an RVF file | + +## Additional Crates + +RuVector includes 80+ crates. Key specialized crates include: + +| Crate | npm Package | Description | +|-------|------------|-------------| +| `ruvector-gnn` | `@ruvector/gnn` | GNN training with EWC forgetting mitigation, LoRA, curriculum learning | +| `ruvector-attention` | `@ruvector/attention` | 50+ attention mechanisms (flash, sparse, hyperbolic, sheaf, MoE) | +| `ruvector-mincut` | `@ruvector/mincut` | Subpolynomial-time dynamic graph partitioning | +| `ruvector-solver` | `@ruvector/solver` | Sparse linear solvers (Neumann, CG, forward/backward push) | +| `ruvector-graph` | `@ruvector/graph-node` | Property graph DB with Cypher, hybrid vector+graph | +| `ruvector-graph-transformer` | `@ruvector/graph-transformer` | Transformer-based graph encoding | +| `ruvllm` | — | Full LLM serving with paged attention, speculative decoding, LoRA | +| `sona` | — | Self-Optimizing Neural Architecture (continual learning) | +| `rvlite` | — | Lightweight vector DB for edge devices | +| `ruvector-verified` | — | Cryptographic proof system for vector correctness | +| `ruvector-postgres` | — | PostgreSQL extension for vector operations | + +See the [API reference](../api/) and individual crate READMEs for detailed documentation. + ## Best Practices 1. **Start simple**: Begin with default settings, optimize later @@ -537,11 +832,15 @@ fn advanced_demo() -> Result<(), Box> { 5. **Tune HNSW gradually**: Increase parameters only if needed 6. **Use appropriate metrics**: Cosine for normalized, Euclidean otherwise 7. **Enable SIMD**: Always compile with target-cpu=native -8. **Memory-map large datasets**: Essential for datasets > RAM +8. **Use collections**: Organize vectors by domain for better management +9. **Monitor with metrics**: Enable Prometheus metrics in production +10. **Use RVF for self-contained files**: When you need portability with embedded segments ## Next Steps -- [AgenticDB Tutorial](AGENTICDB_TUTORIAL.md) - Advanced AI agent features +- [AgenticDB Quickstart](AGENTICDB_QUICKSTART.md) - AI agent memory features - [Performance Tuning](../optimization/PERFORMANCE_TUNING_GUIDE.md) - Detailed optimization - [API Reference](../api/) - Complete API documentation -- [Examples](../../examples/) - Working code examples +- [Cypher Reference](../api/CYPHER_REFERENCE.md) - Graph query language +- [RVF Examples](../../examples/rvf/) - Working RVF format examples +- [Examples](../../examples/) - All working code examples diff --git a/docs/guides/BASIC_TUTORIAL.md b/docs/guides/BASIC_TUTORIAL.md index 536a5f8b8..2c29cfe10 100644 --- a/docs/guides/BASIC_TUTORIAL.md +++ b/docs/guides/BASIC_TUTORIAL.md @@ -112,7 +112,7 @@ fn search_examples(db: &VectorDB) -> Result<(), Box> { vector: vec![0.15; 128], k: 10, // Return top 10 results filter: None, - include_vectors: false, + ef_search: None, }; let results = db.search(&query)?; @@ -122,7 +122,7 @@ fn search_examples(db: &VectorDB) -> Result<(), Box> { "{}. ID: {}, Distance: {:.4}", i + 1, result.id, - result.distance + result.score ); } @@ -139,7 +139,7 @@ const results = await db.search({ }); results.forEach((result, i) => { - console.log(`${i + 1}. ID: ${result.id}, Distance: ${result.distance.toFixed(4)}`); + console.log(`${i + 1}. ID: ${result.id}, Distance: ${result.score.toFixed(4)}`); }); ``` @@ -270,7 +270,8 @@ Tune HNSW parameters for your use case. ### Rust ```rust -use ruvector_core::{HnswConfig, DistanceMetric}; +use ruvector_core::types::{HnswConfig, DbOptions}; +use ruvector_core::DistanceMetric; fn create_tuned_db() -> Result> { let mut options = DbOptions::default(); @@ -278,12 +279,12 @@ fn create_tuned_db() -> Result> { options.storage_path = "./tuned_db.db".to_string(); // HNSW configuration - options.hnsw = HnswConfig { + options.hnsw_config = Some(HnswConfig { m: 32, // Connections per node (16-64) ef_construction: 200, // Build quality (100-400) ef_search: 100, // Search quality (50-500) max_elements: 10_000_000, // Maximum vectors - }; + }); // Distance metric options.distance_metric = DistanceMetric::Cosine; @@ -328,7 +329,7 @@ Reduce memory usage with quantization. ### Rust ```rust -use ruvector_core::QuantizationConfig; +use ruvector_core::types::{QuantizationConfig, DbOptions}; fn create_quantized_db() -> Result> { let mut options = DbOptions::default(); @@ -336,13 +337,13 @@ fn create_quantized_db() -> Result> { options.storage_path = "./quantized_db.db".to_string(); // Scalar quantization (4x compression) - options.quantization = QuantizationConfig::Scalar; + options.quantization = Some(QuantizationConfig::Scalar); // Product quantization (8-16x compression) - // options.quantization = QuantizationConfig::Product { + // options.quantization = Some(QuantizationConfig::Product { // subspaces: 16, // k: 256, - // }; + // }); let db = VectorDB::new(options)?; println!("Created database with scalar quantization"); @@ -414,10 +415,8 @@ ruvector import --db ./new_db.db --input ./backup.json Here's a complete program combining everything: ```rust -use ruvector_core::{ - VectorDB, VectorEntry, SearchQuery, DbOptions, HnswConfig, - DistanceMetric, QuantizationConfig, -}; +use ruvector_core::{VectorDB, VectorEntry, SearchQuery, DistanceMetric}; +use ruvector_core::types::{DbOptions, HnswConfig, QuantizationConfig}; use rand::Rng; use serde_json::json; use std::collections::HashMap; @@ -427,14 +426,14 @@ fn main() -> Result<(), Box> { let mut options = DbOptions::default(); options.dimensions = 128; options.storage_path = "./tutorial_db.db".to_string(); - options.hnsw = HnswConfig { + options.hnsw_config = Some(HnswConfig { m: 32, ef_construction: 200, ef_search: 100, max_elements: 1_000_000, - }; + }); options.distance_metric = DistanceMetric::Cosine; - options.quantization = QuantizationConfig::Scalar; + options.quantization = Some(QuantizationConfig::Scalar); let db = VectorDB::new(options)?; println!("✓ Created database"); @@ -469,7 +468,7 @@ fn main() -> Result<(), Box> { vector: query_vector, k: 10, filter: None, - include_vectors: false, + ef_search: None, }; let start = std::time::Instant::now(); @@ -479,7 +478,7 @@ fn main() -> Result<(), Box> { println!("✓ Search completed in {:?}", search_time); println!("\nTop 10 Results:"); for (i, result) in results.iter().enumerate() { - println!(" {}. ID: {}, Distance: {:.4}", i + 1, result.id, result.distance); + println!(" {}. ID: {}, Distance: {:.4}", i + 1, result.id, result.score); } Ok(()) @@ -525,7 +524,7 @@ let results = db.search(&SearchQuery { filter: Some(json!({ "timestamp": { "$gte": one_week_ago } })), - include_vectors: false, + ef_search: None, })?; // Return relevant documents @@ -550,7 +549,7 @@ let recommendations = db.search(&SearchQuery { filter: Some(json!({ "id": { "$nin": user_already_seen } })), - include_vectors: false, + ef_search: None, })?; ``` diff --git a/docs/guides/GETTING_STARTED.md b/docs/guides/GETTING_STARTED.md index 7c11cfa60..17665087d 100644 --- a/docs/guides/GETTING_STARTED.md +++ b/docs/guides/GETTING_STARTED.md @@ -1,49 +1,73 @@ -# Getting Started with Ruvector +# Getting Started with RuVector -## What is Ruvector? +## What is RuVector? -Ruvector is a high-performance, Rust-native vector database designed for modern AI applications. It provides: +RuVector is a high-performance, Rust-native vector database and file format designed for modern AI applications. It provides: - **10-100x performance improvements** over Python/TypeScript implementations - **Sub-millisecond latency** with HNSW indexing and SIMD optimization -- **AgenticDB API compatibility** for seamless migration - **Multi-platform deployment** (Rust, Node.js, WASM/Browser, CLI) -- **Advanced features** including quantization, hybrid search, and causal memory +- **RVF (RuVector Format)** — a self-contained binary format with embedded WASM, kernel, eBPF, and dashboard segments +- **Advanced features** including quantization, filtered search, witness chains, COW branching, and AGI container manifests + +## Packages + +| Package | Registry | Version | Description | +|---------|----------|---------|-------------| +| `ruvector-core` | crates.io | 2.0.x | Core Rust library (VectorDB, HNSW, quantization) | +| `ruvector` | npm | 0.1.x | Node.js native bindings via NAPI-RS | +| `@ruvector/rvf` | npm | 0.2.x | RVF format library (TypeScript) | +| `@ruvector/rvf-node` | npm | 0.1.x | RVF Node.js native bindings | +| `@ruvector/gnn` | npm | 0.1.x | Graph Neural Network bindings | +| `@ruvector/graph-node` | npm | 2.0.x | Graph database with Cypher queries | +| `ruvector-wasm` / `@ruvector/wasm` | npm | — | Browser WASM build | ## Quick Start ### Installation -#### Rust -```bash -# Add to Cargo.toml +#### Rust (ruvector-core) +```toml +# Cargo.toml +[dependencies] +ruvector-core = "2.0" +``` + +#### Rust (RVF format — separate workspace) +```toml +# Cargo.toml — RVF crates live in examples/rvf or crates/rvf [dependencies] -ruvector-core = "0.1.0" +rvf-runtime = "0.2" +rvf-crypto = "0.2" ``` #### Node.js ```bash npm install ruvector -# or -yarn add ruvector +# or for the RVF format: +npm install @ruvector/rvf-node ``` #### CLI ```bash -cargo install ruvector-cli +# Build from source +git clone https://github.com/ruvnet/ruvector.git +cd ruvector +cargo install --path crates/ruvector-cli ``` -### Basic Usage +### Basic Usage — ruvector-core (VectorDB) #### Rust ```rust use ruvector_core::{VectorDB, VectorEntry, SearchQuery, DbOptions}; fn main() -> Result<(), Box> { - // Create a new vector database - let mut options = DbOptions::default(); - options.dimensions = 128; - options.storage_path = "./vectors.db".to_string(); + let options = DbOptions { + dimensions: 128, + storage_path: "./vectors.db".to_string(), + ..Default::default() + }; let db = VectorDB::new(options)?; @@ -61,12 +85,12 @@ fn main() -> Result<(), Box> { vector: vec![0.1; 128], k: 10, filter: None, - include_vectors: false, + ef_search: None, }; - let results = db.search(&query)?; + let results = db.search(query)?; for (i, result) in results.iter().enumerate() { - println!("{}. ID: {}, Distance: {}", i + 1, result.id, result.distance); + println!("{}. ID: {}, Score: {:.4}", i + 1, result.id, result.score); } Ok(()) @@ -78,34 +102,68 @@ fn main() -> Result<(), Box> { const { VectorDB } = require('ruvector'); async function main() { - // Create a new vector database const db = new VectorDB({ dimensions: 128, storagePath: './vectors.db', - distanceMetric: 'cosine' + distanceMetric: 'Cosine' }); - // Insert a vector const id = await db.insert({ vector: new Float32Array(128).fill(0.1), metadata: { text: 'Example document' } }); console.log('Inserted vector:', id); - // Search for similar vectors const results = await db.search({ vector: new Float32Array(128).fill(0.1), k: 10 }); results.forEach((result, i) => { - console.log(`${i + 1}. ID: ${result.id}, Distance: ${result.distance}`); + console.log(`${i + 1}. ID: ${result.id}, Score: ${result.score.toFixed(4)}`); }); } main().catch(console.error); ``` +### Basic Usage — RVF Format (RvfStore) + +The RVF format is a newer, self-contained binary format used in the `rvf-runtime` crate. See [`examples/rvf/`](../../examples/rvf/) for working examples. + +```rust +use rvf_runtime::{RvfStore, RvfOptions, QueryOptions, MetadataEntry, MetadataValue}; +use rvf_runtime::options::DistanceMetric; + +fn main() -> Result<(), Box> { + let opts = RvfOptions { + dimension: 128, + metric: DistanceMetric::L2, + ..Default::default() + }; + + let mut store = RvfStore::create("data.rvf", opts)?; + + // Ingest vectors with metadata + let vectors = vec![vec![0.1f32; 128]]; + let refs: Vec<&[f32]> = vectors.iter().map(|v| v.as_slice()).collect(); + let ids = vec![0u64]; + let meta = vec![ + MetadataEntry { field_id: 0, value: MetadataValue::String("doc".into()) }, + ]; + store.ingest_batch(&refs, &ids, Some(&meta))?; + + // Query + let query = vec![0.1f32; 128]; + let results = store.query(&query, 5, &QueryOptions::default())?; + for r in &results { + println!("id={}, distance={:.4}", r.id, r.distance); + } + + Ok(()) +} +``` + #### CLI ```bash # Create a database @@ -119,8 +177,25 @@ ruvector search --db ./vectors.db --query "[0.1, 0.2, ...]" --top-k 10 # Show database info ruvector info --db ./vectors.db + +# Graph operations +ruvector graph create --db ./graph.db --dimensions 128 +ruvector graph query --db ./graph.db --query "MATCH (n) RETURN n LIMIT 10" ``` +## Two API Surfaces + +RuVector has two main API surfaces: + +| | **ruvector-core (VectorDB)** | **rvf-runtime (RvfStore)** | +|---|---|---| +| **Use case** | General-purpose vector DB | Self-contained binary format | +| **Storage** | Directory-based | Single `.rvf` file | +| **IDs** | String-based | u64-based | +| **Metadata** | JSON HashMap | Typed fields (String, U64) | +| **Extras** | Collections, metrics, health | Witness chains, WASM/kernel/eBPF embedding, COW branching, AGI containers | +| **Node.js** | `ruvector` npm package | `@ruvector/rvf-node` npm package | + ## Core Concepts ### 1. Vector Database @@ -133,11 +208,11 @@ A vector database stores high-dimensional vectors (embeddings) and enables fast ### 2. Distance Metrics -Ruvector supports multiple distance metrics: +RuVector supports multiple distance metrics: - **Euclidean (L2)**: Standard distance in Euclidean space - **Cosine**: Measures angle between vectors (normalized dot product) - **Dot Product**: Inner product (useful for pre-normalized vectors) -- **Manhattan (L1)**: Sum of absolute differences +- **Manhattan (L1)**: Sum of absolute differences (ruvector-core only) ### 3. HNSW Indexing @@ -153,41 +228,43 @@ Key parameters: ### 4. Quantization -Reduce memory usage with quantization: +Reduce memory usage with quantization (ruvector-core): - **Scalar (int8)**: 4x compression, 97-99% recall - **Product**: 8-16x compression, 90-95% recall - **Binary**: 32x compression, 80-90% recall (filtering) -### 5. AgenticDB Features +### 5. RVF Format Features -Advanced features for AI agents: -- **Reflexion Memory**: Self-critique episodes for learning -- **Skill Library**: Reusable action patterns -- **Causal Memory**: Cause-effect relationships -- **Learning Sessions**: RL training data +The RVF binary format supports: +- **Witness chains**: Cryptographic audit trails (SHAKE256) +- **Segment embedding**: WASM, kernel, eBPF, and dashboard segments in one file +- **COW branching**: Copy-on-write branches for staging environments +- **Lineage tracking**: Parent-child derivation with depth tracking +- **Membership filters**: Bitmap-based tenant isolation +- **DoS hardening**: Token buckets, negative caches, proof-of-work +- **AGI containers**: Self-describing agent manifests ## Next Steps - [Installation Guide](INSTALLATION.md) - Detailed installation instructions -- [Basic Tutorial](BASIC_TUTORIAL.md) - Step-by-step tutorial +- [Basic Tutorial](BASIC_TUTORIAL.md) - Step-by-step tutorial with ruvector-core - [Advanced Features](ADVANCED_FEATURES.md) - Hybrid search, quantization, filtering -- [AgenticDB Migration Guide](../MIGRATION.md) - Migrate from agenticDB +- [RVF Examples](../../examples/rvf/) - Working RVF format examples (openfang, security_hardened, etc.) - [API Reference](../api/) - Complete API documentation -- [Examples](../../examples/) - Working code examples +- [Examples](../../examples/) - All working code examples ## Performance Tips 1. **Choose the right distance metric**: Cosine for normalized embeddings, Euclidean otherwise 2. **Tune HNSW parameters**: Higher `m` and `ef_construction` for better recall 3. **Enable quantization**: Reduces memory 4-32x with minimal accuracy loss -4. **Batch operations**: Use `insert_batch()` for better throughput -5. **Memory-map large datasets**: Set `mmap_vectors: true` for datasets larger than RAM +4. **Batch operations**: Use `insert_batch()` / `ingest_batch()` for better throughput +5. **Build with SIMD**: `RUSTFLAGS="-C target-cpu=native" cargo build --release` ## Common Issues ### Out of Memory - Enable quantization to reduce memory usage -- Use memory-mapped vectors for large datasets - Reduce `max_elements` or increase available RAM ### Slow Search @@ -204,8 +281,7 @@ Advanced features for AI agents: - **GitHub**: [https://github.com/ruvnet/ruvector](https://github.com/ruvnet/ruvector) - **Issues**: [https://github.com/ruvnet/ruvector/issues](https://github.com/ruvnet/ruvector/issues) -- **Documentation**: [https://docs.rs/ruvector-core](https://docs.rs/ruvector-core) ## License -Ruvector is licensed under the MIT License. See [LICENSE](../../LICENSE) for details. +RuVector is licensed under the MIT License. See [LICENSE](../../LICENSE) for details. diff --git a/docs/guides/INSTALLATION.md b/docs/guides/INSTALLATION.md index 304c89b21..292fd69b6 100644 --- a/docs/guides/INSTALLATION.md +++ b/docs/guides/INSTALLATION.md @@ -5,7 +5,7 @@ This guide covers installation of Ruvector for all supported platforms: Rust, No ## Prerequisites ### Rust -- **Rust 1.77+** (latest stable recommended) +- **Rust 1.80+** (latest stable recommended) - **Cargo** (included with Rust) Install Rust from [rustup.rs](https://rustup.rs/): @@ -30,7 +30,15 @@ Download from [nodejs.org](https://nodejs.org/) #### Add to Cargo.toml ```toml [dependencies] -ruvector-core = "0.1.0" +ruvector-core = "2.0" +``` + +For the RVF binary format (separate workspace in `crates/rvf`): +```toml +[dependencies] +rvf-runtime = "0.2" +rvf-crypto = "0.2" +rvf-types = "0.2" ``` #### Build with optimizations @@ -45,15 +53,15 @@ RUSTFLAGS="-C target-cpu=native" cargo build --release RUSTFLAGS="-C target-feature=+avx2,+fma" cargo build --release ``` -#### Optional features +#### Optional features (ruvector-core) ```toml [dependencies] -ruvector-core = { version = "0.1.0", features = ["agenticdb", "advanced"] } +ruvector-core = { version = "2.0", features = ["hnsw", "storage"] } ``` Available features: -- `agenticdb`: AgenticDB API compatibility (enabled by default) -- `advanced`: Advanced features (product quantization, hybrid search) +- `hnsw`: HNSW indexing (enabled by default) +- `storage`: Persistent storage backend - `simd`: SIMD intrinsics (enabled by default on x86_64) ### 2. Node.js Package @@ -81,10 +89,10 @@ console.log('Ruvector loaded successfully!'); #### Platform-specific binaries -Ruvector uses NAPI-RS for native bindings. Pre-built binaries are available for: -- **Linux**: x64, arm64 (glibc 2.17+) -- **macOS**: x64 (10.13+), arm64 (11.0+) -- **Windows**: x64, arm64 +RuVector uses NAPI-RS for native bindings. Pre-built binaries are available for: +- **Linux**: x64 (glibc), x64 (musl), arm64 (glibc), arm64 (musl) +- **macOS**: x64, arm64 (Apple Silicon) +- **Windows**: x64 If no pre-built binary is available, it will compile from source (requires Rust). @@ -92,7 +100,13 @@ If no pre-built binary is available, it will compile from source (requires Rust) #### NPM package ```bash -npm install ruvector-wasm +npm install @ruvector/wasm +``` + +There are also specialized WASM packages: +```bash +npm install @ruvector/rvf-wasm # RVF format in browser +npm install @ruvector/gnn-wasm # Graph neural networks ``` #### Basic usage @@ -100,11 +114,11 @@ npm install ruvector-wasm - Ruvector WASM Demo + RuVector WASM Demo