From 6e7f0a2af993b5d527ca902d96a659069d36425a Mon Sep 17 00:00:00 2001 From: Fabian Murariu Date: Sun, 3 May 2026 19:15:01 +0100 Subject: [PATCH 01/22] counts for edges in and out # Conflicts: # db4-storage/src/segments/node/segment.rs --- db4-storage/src/segments/mod.rs | 20 ++++++++++++++++ db4-storage/src/segments/node/segment.rs | 29 ++++++++++++++++-------- 2 files changed, 39 insertions(+), 10 deletions(-) diff --git a/db4-storage/src/segments/mod.rs b/db4-storage/src/segments/mod.rs index 222c8b2d71..a77ed3e4f3 100644 --- a/db4-storage/src/segments/mod.rs +++ b/db4-storage/src/segments/mod.rs @@ -160,6 +160,8 @@ pub struct SegmentContainer { max_page_len: u32, properties: Properties, meta: Arc, + out_count: usize, // used to count num edges + inb_count: usize, // used to count num edges } pub trait HasRow: Default + Send + Sync + Sized { @@ -178,6 +180,8 @@ impl SegmentContainer { max_page_len, properties: Default::default(), meta, + out_count: 0, + inb_count: 0, } } @@ -190,6 +194,22 @@ impl SegmentContainer { ) } + pub fn inc_out_count(&mut self, i: usize) { + self.out_count += i; + } + + pub fn inc_inb_count(&mut self, i: usize) { + self.inb_count += i; + } + + pub fn out_count(&self) -> usize { + self.out_count + } + + pub fn inb_count(&self) -> usize { + self.inb_count + } + #[inline] pub fn est_size(&self) -> usize { // TODO: this is a rough estimate and should be improved diff --git a/db4-storage/src/segments/node/segment.rs b/db4-storage/src/segments/node/segment.rs index d556075f4e..7a57aa0598 100644 --- a/db4-storage/src/segments/node/segment.rs +++ b/db4-storage/src/segments/node/segment.rs @@ -261,11 +261,15 @@ impl MemNodeSegment { let layer = self.get_or_create_layer(layer_id); let est_size = layer.est_size(); - let add_out = layer.reserve_local_row(src_pos); - let new_entry = add_out.is_new(); - let add_out = add_out.inner(); - let is_new_edge = add_out.adj.add_edge_out(dst, e_id.eid()); - let row = add_out.row; + let (is_new_edge, row, new_entry) = { + let add_out = layer.reserve_local_row(src_pos); + let new_entry = add_out.is_new(); + let add_out = add_out.inner(); + let is_new_edge = add_out.adj.add_edge_out(dst, e_id.eid()); + let row = add_out.row; + (is_new_edge, row, new_entry) + }; + layer.inc_out_count(is_new_edge as usize); if let Some(t) = t { self.update_timestamp_inner(t, row, e_id); } @@ -290,11 +294,16 @@ impl MemNodeSegment { let layer = self.get_or_create_layer(layer_id); let est_size = layer.est_size(); - let add_in = layer.reserve_local_row(dst_pos); - let new_entry = add_in.is_new(); - let add_in = add_in.inner(); - let is_new_edge = add_in.adj.add_edge_into(src, e_id.eid()); - let row = add_in.row; + let (is_new_edge, row, new_entry) = { + let add_in = layer.reserve_local_row(dst_pos); + let new_entry = add_in.is_new(); + let add_in = add_in.inner(); + let is_new_edge = add_in.adj.add_edge_into(src, e_id.eid()); + let row = add_in.row; + (is_new_edge, row, new_entry) + }; + + layer.inc_inb_count(is_new_edge as usize); if let Some(t) = t { self.update_timestamp_inner(t, row, e_id); From cbae4b7158e569829225fc0d8d8bc038dfb68479 Mon Sep 17 00:00:00 2001 From: Fabian Murariu Date: Tue, 5 May 2026 13:51:42 +0100 Subject: [PATCH 02/22] EventTime repr(C) --- raphtory-api/src/core/storage/timeindex.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/raphtory-api/src/core/storage/timeindex.rs b/raphtory-api/src/core/storage/timeindex.rs index 8bcef2bfc4..91c27ea030 100644 --- a/raphtory-api/src/core/storage/timeindex.rs +++ b/raphtory-api/src/core/storage/timeindex.rs @@ -1,3 +1,4 @@ +use bytemuck::{Pod, Zeroable}; use chrono::{DateTime, Utc}; use itertools::Itertools; use serde::{Deserialize, Serialize}; @@ -24,7 +25,10 @@ impl fmt::Display for TimeError { impl std::error::Error for TimeError {} -#[derive(Debug, Copy, Clone, Serialize, Deserialize, PartialEq, Ord, PartialOrd, Eq, Hash)] +#[derive( + Debug, Copy, Clone, Serialize, Deserialize, PartialEq, Ord, PartialOrd, Eq, Hash, Pod, Zeroable, +)] +#[repr(C)] pub struct EventTime(pub i64, pub usize); impl PartialEq for EventTime { @@ -181,11 +185,11 @@ impl<'a, L: TimeIndexOps<'a>, R: TimeIndexOps<'a, IndexType = L::IndexType>> Tim } fn first(&self) -> Option { - self.0.first().into_iter().chain(self.1.first()).min() + Iterator::min(self.0.first().into_iter().chain(self.1.first())) // rust-analyzer } fn last(&self) -> Option { - self.0.last().into_iter().chain(self.1.last()).max() + Iterator::max(self.0.last().into_iter().chain(self.1.last())) // rust-analyzer } fn iter(self) -> impl Iterator + Send + Sync + 'a { From 3467f82654e5f582726e9e091bf706caf4796890 Mon Sep 17 00:00:00 2001 From: Fabian Murariu Date: Fri, 8 May 2026 14:18:46 +0100 Subject: [PATCH 03/22] minor changes to support persistent-matrix --- db4-storage/src/gen_ts.rs | 3 ++- db4-storage/src/properties/mod.rs | 6 ++++++ db4-storage/src/segments/mod.rs | 4 ++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/db4-storage/src/gen_ts.rs b/db4-storage/src/gen_ts.rs index 60a432048e..c7027c8b73 100644 --- a/db4-storage/src/gen_ts.rs +++ b/db4-storage/src/gen_ts.rs @@ -1,11 +1,12 @@ use crate::{NodeEntryRef, segments::additions::MemAdditions, utils::Iter3}; +use std::ops::Range; + use raphtory_api::core::entities::LayerId; use raphtory_core::{ entities::{ELID, LayerIds, layers::Multiple}, storage::timeindex::{EventTime, TimeIndexOps}, }; use raphtory_itertools::FastMergeExt; -use std::ops::Range; #[derive(Clone, Debug)] pub enum LayerIter<'a> { diff --git a/db4-storage/src/properties/mod.rs b/db4-storage/src/properties/mod.rs index 456d6f199f..bdccd66da7 100644 --- a/db4-storage/src/properties/mod.rs +++ b/db4-storage/src/properties/mod.rs @@ -38,6 +38,7 @@ pub struct Properties { has_properties: bool, has_deletions: bool, pub additions_count: usize, + pub deletions_count: usize, } pub(crate) struct PropMutEntry<'a> { @@ -286,6 +287,10 @@ impl Properties { self.t_properties.len() } + pub fn deletions_count(&self) -> usize { + self.deletions_count + } + pub fn num_updates(&self) -> usize { self.t_properties.len() + self @@ -355,6 +360,7 @@ impl<'a> PropMutEntry<'a> { } self.properties.has_deletions = true; + self.properties.deletions_count += 1; let prop_timestamps = &mut self.properties.deletions[self.row]; prop_timestamps.set(t, edge_id.unwrap_or_default()); diff --git a/db4-storage/src/segments/mod.rs b/db4-storage/src/segments/mod.rs index a77ed3e4f3..9efd11bc84 100644 --- a/db4-storage/src/segments/mod.rs +++ b/db4-storage/src/segments/mod.rs @@ -246,6 +246,10 @@ impl SegmentContainer { self.properties.t_len() } + pub fn deletions_len(&self) -> usize { + self.properties.deletions_count() + } + /// Reserves a local row for the given item position. /// If the item position already exists, it returns a mutable reference to the existing item. /// Left variant indicates that the item was already present, From 58a314466ff2dbb7d57831754dd38992ee9d78ca Mon Sep 17 00:00:00 2001 From: Fabian Murariu Date: Fri, 8 May 2026 17:07:08 +0100 Subject: [PATCH 04/22] update Cargo.lock # Conflicts: # Cargo.lock --- Cargo.lock | 2920 +++++++++++++++++++++++++++------------------------- 1 file changed, 1531 insertions(+), 1389 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b518abf163..e9274f938e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -20,13 +20,13 @@ checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aes" -version = "0.9.1" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fc76eaeac4c9164506c466d4ffdd8ec9d0c5bf57ee97177c4d8eceb3a0e138" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ + "cfg-if", "cipher", - "cpubits", - "cpufeatures 0.3.0", + "cpufeatures 0.2.17", ] [[package]] @@ -74,15 +74,6 @@ dependencies = [ "alloc-no-stdlib", ] -[[package]] -name = "alloca" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7d05ea6aea7e9e64d25b9156ba2fee3fdd659e34e41063cd2fc7cd020d7f4" -dependencies = [ - "cc", -] - [[package]] name = "allocator-api2" version = "0.2.21" @@ -160,6 +151,15 @@ version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" +[[package]] +name = "arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" +dependencies = [ + "derive_arbitrary", +] + [[package]] name = "arc-swap" version = "1.9.1" @@ -189,9 +189,9 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "arrow" -version = "58.3.0" +version = "57.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "378530e55cd479eda3c14eb345310799717e6f76d0c332041e8487022166b471" +checksum = "e4754a624e5ae42081f464514be454b39711daae0458906dacde5f4c632f33a8" dependencies = [ "arrow-arith", "arrow-array", @@ -210,9 +210,9 @@ dependencies = [ [[package]] name = "arrow-arith" -version = "58.3.0" +version = "57.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0ab212d2c1886e802f51c5212d78ebbcbb0bec980fff9dadc1eb8d45cd0b738" +checksum = "f7b3141e0ec5145a22d8694ea8b6d6f69305971c4fa1c1a13ef0195aef2d678b" dependencies = [ "arrow-array", "arrow-buffer", @@ -224,9 +224,9 @@ dependencies = [ [[package]] name = "arrow-array" -version = "58.3.0" +version = "57.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfd33d3e92f207444098c75b42de99d329562be0cf686b307b097cc52b4e999e" +checksum = "4c8955af33b25f3b175ee10af580577280b4bd01f7e823d94c7cdef7cf8c9aef" dependencies = [ "ahash", "arrow-buffer", @@ -235,7 +235,7 @@ dependencies = [ "chrono", "chrono-tz 0.10.4", "half", - "hashbrown 0.17.1", + "hashbrown 0.16.1", "num-complex", "num-integer", "num-traits", @@ -243,9 +243,9 @@ dependencies = [ [[package]] name = "arrow-buffer" -version = "58.3.0" +version = "57.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c6cd424c2693bcdbc150d843dc9d4d137dd2de4782ce6df491ad11a3a0416c0" +checksum = "c697ddca96183182f35b3a18e50b9110b11e916d7b7799cbfd4d34662f2c56c2" dependencies = [ "bytes", "half", @@ -255,9 +255,9 @@ dependencies = [ [[package]] name = "arrow-cast" -version = "58.3.0" +version = "57.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c5aefb56a2c02e9e2b30746241058b85f8983f0fcff2ba0c6d09006e1cded7f" +checksum = "646bbb821e86fd57189c10b4fcdaa941deaf4181924917b0daa92735baa6ada5" dependencies = [ "arrow-array", "arrow-buffer", @@ -266,7 +266,7 @@ dependencies = [ "arrow-schema", "arrow-select", "atoi", - "base64", + "base64 0.22.1", "chrono", "comfy-table", "half", @@ -277,9 +277,9 @@ dependencies = [ [[package]] name = "arrow-csv" -version = "58.3.0" +version = "57.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94e8cf7e517657a52b91ea1263acf38c4ca62a84655d72458a3359b12ab97de" +checksum = "8da746f4180004e3ce7b83c977daf6394d768332349d3d913998b10a120b790a" dependencies = [ "arrow-array", "arrow-cast", @@ -292,9 +292,9 @@ dependencies = [ [[package]] name = "arrow-data" -version = "58.3.0" +version = "57.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c88210023a2bfee1896af366309a3028fc3bcbd6515fa29a7990ee1baa08ee0" +checksum = "1fdd994a9d28e6365aa78e15da3f3950c0fdcea6b963a12fa1c391afb637b304" dependencies = [ "arrow-buffer", "arrow-schema", @@ -305,9 +305,9 @@ dependencies = [ [[package]] name = "arrow-ipc" -version = "58.3.0" +version = "57.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "238438f0834483703d88896db6fe5a7138b2230debc31b34c0336c2996e3c64f" +checksum = "abf7df950701ab528bf7c0cf7eeadc0445d03ef5d6ffc151eaae6b38a58feff1" dependencies = [ "arrow-array", "arrow-buffer", @@ -315,22 +315,21 @@ dependencies = [ "arrow-schema", "arrow-select", "flatbuffers", - "lz4_flex", + "lz4_flex 0.12.1", "zstd", ] [[package]] name = "arrow-json" -version = "58.3.0" +version = "57.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "205ca2119e6d679d5c133c6f30e68f027738d95ed948cf77677ea69c7800036b" +checksum = "0ff8357658bedc49792b13e2e862b80df908171275f8e6e075c460da5ee4bf86" dependencies = [ "arrow-array", "arrow-buffer", "arrow-cast", - "arrow-ord", + "arrow-data", "arrow-schema", - "arrow-select", "chrono", "half", "indexmap 2.14.0", @@ -346,9 +345,9 @@ dependencies = [ [[package]] name = "arrow-ord" -version = "58.3.0" +version = "57.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bffd8fd2579286a5d63bac898159873e5094a79009940bcb42bbfce4f19f1d0" +checksum = "f7d8f1870e03d4cbed632959498bcc84083b5a24bded52905ae1695bd29da45b" dependencies = [ "arrow-array", "arrow-buffer", @@ -359,9 +358,9 @@ dependencies = [ [[package]] name = "arrow-row" -version = "58.3.0" +version = "57.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab5994731204603c73ba69267616c50f80780774c6bb0476f1f830625115e0c" +checksum = "18228633bad92bff92a95746bbeb16e5fc318e8382b75619dec26db79e4de4c0" dependencies = [ "arrow-array", "arrow-buffer", @@ -372,20 +371,20 @@ dependencies = [ [[package]] name = "arrow-schema" -version = "58.3.0" +version = "57.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f633dbfdf39c039ada1bf9e34c694816eb71fbb7dc78f613993b7245e078a1ed" +checksum = "8c872d36b7bf2a6a6a2b40de9156265f0242910791db366a2c17476ba8330d68" dependencies = [ - "bitflags 2.11.1", + "bitflags", "serde_core", "serde_json", ] [[package]] name = "arrow-select" -version = "58.3.0" +version = "57.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cd065c54172ac787cf3f2f8d4107e0d3fdc26edba76fdf4f4cc170258942222" +checksum = "68bf3e3efbd1278f770d67e5dc410257300b161b93baedb3aae836144edcaf4b" dependencies = [ "ahash", "arrow-array", @@ -397,9 +396,9 @@ dependencies = [ [[package]] name = "arrow-string" -version = "58.3.0" +version = "57.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29dd7cda3ab9692f43a2e4acc444d760cc17b12bb6d8232ddf64e9bab7c06b42" +checksum = "85e968097061b3c0e9fe3079cf2e703e487890700546b5b0647f60fca1b5a8d8" dependencies = [ "arrow-array", "arrow-buffer", @@ -432,9 +431,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.42" +version = "0.4.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79b3f8a79cccc2898f31920fc69f304859b3bd567490f75ebf51ae1c792a9ac" +checksum = "d0f9ee0f6e02ffd7ad5816e9464499fba7b3effd01123b515c41d1697c43dad1" dependencies = [ "compression-codecs", "compression-core", @@ -454,7 +453,7 @@ dependencies = [ "async-io", "async-trait", "asynk-strim", - "base64", + "base64 0.22.1", "bytes", "chrono", "fast_chemail", @@ -547,7 +546,7 @@ dependencies = [ "futures-lite", "parking", "polling", - "rustix", + "rustix 1.1.4", "slab", "windows-sys 0.61.2", ] @@ -571,13 +570,13 @@ checksum = "4df839a6643e1e3248733b01f229dc4f462d7256f808bbaf04cac40739b345c2" dependencies = [ "async-openai-macros", "backoff", - "base64", + "base64 0.22.1", "bytes", "derive_builder", "eventsource-stream", "futures", - "rand 0.8.6", - "reqwest 0.12.28", + "rand 0.8.5", + "reqwest", "reqwest-eventsource", "secrecy", "serde", @@ -611,6 +610,28 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "async-stream" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "async-trait" version = "0.1.89" @@ -658,15 +679,15 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.5.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "aws-lc-rs" -version = "1.17.0" +version = "1.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ec2f1fc3ec205783a5da9a7e6c1509cc69dedf09a1949e412c1e18469326d00" +checksum = "a054912289d18629dc78375ba2c3726a3afe3ff71b4edba9dedfca0e3446d1fc" dependencies = [ "aws-lc-sys", "untrusted 0.7.1", @@ -675,9 +696,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.41.0" +version = "0.39.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a2f9779ce85b93ab6170dd940ad0169b5766ff848247aff13bb788b832fe3f4" +checksum = "83a25cf98105baa966497416dbd42565ce3a8cf8dbfd59803ec9ad46f3126399" dependencies = [ "cc", "cmake", @@ -685,13 +706,40 @@ dependencies = [ "fs_extra", ] +[[package]] +name = "axum" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" +dependencies = [ + "async-trait", + "axum-core 0.4.5", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "itoa", + "matchit 0.7.3", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower 0.5.3", + "tower-layer", + "tower-service", +] + [[package]] name = "axum" version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "31b698c5f9a010f6573133b09e0de5408834d0c82f8d7475a89fc1867a71cd90" dependencies = [ - "axum-core", + "axum-core 0.5.6", "bytes", "form_urlencoded", "futures-util", @@ -701,7 +749,7 @@ dependencies = [ "hyper", "hyper-util", "itoa", - "matchit", + "matchit 0.8.4", "memchr", "mime", "percent-encoding", @@ -712,12 +760,32 @@ dependencies = [ "serde_urlencoded", "sync_wrapper", "tokio", - "tower", + "tower 0.5.3", "tower-layer", "tower-service", "tracing", ] +[[package]] +name = "axum-core" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper", + "tower-layer", + "tower-service", +] + [[package]] name = "axum-core" version = "0.5.6" @@ -747,16 +815,31 @@ dependencies = [ "getrandom 0.2.17", "instant", "pin-project-lite", - "rand 0.8.6", + "rand 0.8.5", "tokio", ] +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + [[package]] name = "base64" version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64-compat" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a8d4d2746f89841e49230dd26917df1876050f95abafafbe34f47cb534b88d7" +dependencies = [ + "byteorder", +] + [[package]] name = "bigdecimal" version = "0.4.10" @@ -780,6 +863,26 @@ dependencies = [ "serde", ] +[[package]] +name = "bincode" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" +dependencies = [ + "bincode_derive", + "serde", + "unty", +] + +[[package]] +name = "bincode_derive" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09" +dependencies = [ + "virtue", +] + [[package]] name = "bit-set" version = "0.8.0" @@ -795,12 +898,6 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - [[package]] name = "bitflags" version = "2.11.1" @@ -837,20 +934,20 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" dependencies = [ - "digest 0.10.7", + "digest", ] [[package]] name = "blake3" -version = "1.8.5" +version = "1.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aa83c34e62843d924f905e0f5c866eb1dd6545fc4d719e803d9ba6030371fce" +checksum = "4d2d5991425dfd0785aed03aedcf0b321d61975c9b5b3689c774a2610ae0b51e" dependencies = [ "arrayref", "arrayvec", "cc", "cfg-if", - "constant_time_eq", + "constant_time_eq 0.4.2", "cpufeatures 0.3.0", ] @@ -863,16 +960,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "block-buffer" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdd35008169921d80bc60d3d0ab416eecb028c4cd653352907921d95084790be" -dependencies = [ - "hybrid-array", - "zeroize", -] - [[package]] name = "bon" version = "3.9.1" @@ -925,43 +1012,11 @@ dependencies = [ "alloc-stdlib", ] -[[package]] -name = "bs58" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" -dependencies = [ - "tinyvec", -] - [[package]] name = "bumpalo" -version = "3.20.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" - -[[package]] -name = "bytecheck" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0caa33a2c0edca0419d15ac723dff03f1956f7978329b1e3b5fdaaaed9d3ca8b" -dependencies = [ - "bytecheck_derive", - "ptr_meta", - "rancor", - "simdutf8", -] - -[[package]] -name = "bytecheck_derive" -version = "0.8.2" +version = "3.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" [[package]] name = "bytemuck" @@ -1000,11 +1055,31 @@ dependencies = [ [[package]] name = "bzip2" -version = "0.6.1" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49ecfb22d906f800d4fe833b6282cf4dc1c298f5057ca0b5445e5c209735ca47" +dependencies = [ + "bzip2-sys", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.13+1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a53fac24f34a81bc9954b5d6cfce0c21e18ec6959f44f56e8e90e4bb7c346c" +checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" dependencies = [ - "libbz2-rs-sys", + "cc", + "pkg-config", ] [[package]] @@ -1015,9 +1090,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.62" +version = "1.2.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98" +checksum = "43c5703da9466b66a946814e1adf53ea2c90f10063b86290cc9eb67ce3478a20" dependencies = [ "find-msvc-tools", "jobserver", @@ -1025,15 +1100,6 @@ dependencies = [ "shlex", ] -[[package]] -name = "cedarwood" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d910bedd62c24733263d0bed247460853c9d22e8956bd4cd964302095e04e90" -dependencies = [ - "smallvec", -] - [[package]] name = "census" version = "0.4.2" @@ -1052,17 +1118,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" -[[package]] -name = "chacha20" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" -dependencies = [ - "cfg-if", - "cpufeatures 0.3.0", - "rand_core 0.10.1", -] - [[package]] name = "chrono" version = "0.4.44" @@ -1106,7 +1161,7 @@ checksum = "433e39f13c9a060046954e0592a8d0a4bcb1040125cbf91cb8ee58964cfb350f" dependencies = [ "parse-zoneinfo", "phf 0.11.3", - "phf_codegen 0.11.3", + "phf_codegen", ] [[package]] @@ -1138,19 +1193,64 @@ dependencies = [ [[package]] name = "cipher" -version = "0.5.2" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8cf2a2c93cd704877c0858356ed03480ff301ee950b43f1cbe4573b088bfa6c" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ - "crypto-common 0.2.2", + "crypto-common", "inout", ] +[[package]] +name = "clam-core" +version = "0.18.0" +dependencies = [ + "ahash", + "arrow", + "async-trait", + "chrono", + "chrono-tz 0.10.4", + "comfy-table", + "criterion", + "db4-storage", + "either", + "env_logger 0.10.2", + "fastrand", + "flate2", + "insta", + "itertools 0.13.0", + "log", + "nom 7.1.3", + "optd-core", + "parking_lot", + "proptest", + "pyo3", + "raphtory", + "raphtory-api", + "raphtory-itertools", + "raphtory-storage", + "rayon", + "regex", + "roaring 0.10.12", + "rustyline", + "serde", + "serde_json", + "slotmap", + "snb", + "tempfile", + "thiserror 2.0.18", + "tikv-jemallocator", + "tokio", + "tracing", + "tracing-test", + "uuid", +] + [[package]] name = "clap" -version = "4.6.1" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" +checksum = "b193af5b67834b676abd72466a96c1024e6a6ad978a1f484bd90b85c94041351" dependencies = [ "clap_builder", "clap_derive", @@ -1170,9 +1270,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.6.1" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" +checksum = "1110bd8a634a1ab8cb04345d8d878267d57c3cf1b38d91b71af6686408bbca6a" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -1186,6 +1286,15 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" +[[package]] +name = "clipboard-win" +version = "5.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bde03770d3df201d4fb868f2c9c59e66a3e4e2bd06692a0fe701e7103c7e84d4" +dependencies = [ + "error-code", +] + [[package]] name = "cmake" version = "0.1.58" @@ -1195,43 +1304,28 @@ dependencies = [ "cc", ] -[[package]] -name = "cmov" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" - [[package]] name = "colorchoice" version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" -[[package]] -name = "combine" -version = "4.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" -dependencies = [ - "bytes", - "memchr", -] - [[package]] name = "comfy-table" version = "7.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "958c5d6ecf1f214b4c2bbbbf6ab9523a864bd136dcf71a7e8904799acfe1ad47" dependencies = [ + "crossterm", "unicode-segmentation", - "unicode-width", + "unicode-width 0.2.2", ] [[package]] name = "compression-codecs" -version = "0.4.38" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce2548391e9c1929c21bf6aa2680af86fe4c1b33e6cea9ac1cfeec0bd11218cf" +checksum = "eb7b51a7d9c967fc26773061ba86150f19c50c0d65c887cb1fbe295fd16619b7" dependencies = [ "brotli", "compression-core", @@ -1243,9 +1337,9 @@ dependencies = [ [[package]] name = "compression-core" -version = "0.4.32" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc14f565cf027a105f7a44ccf9e5b424348421a1d8952a8fc9d499d313107789" +checksum = "75984efb6ed102a0d42db99afb6c1948f0380d1d91808d5529916e6c08b49d8d" [[package]] name = "concurrent-queue" @@ -1258,29 +1352,39 @@ dependencies = [ [[package]] name = "config" -version = "0.15.23" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f316c6237b2d38be61949ecd15268a4c6ca32570079394a2444d9ce2c72a72d8" +checksum = "68578f196d2a33ff61b27fae256c3164f65e36382648e30666dde05b8cc9dfdf" dependencies = [ "async-trait", "convert_case", "json5", + "nom 7.1.3", "pathdiff", "ron", "rust-ini", - "serde-untagged", - "serde_core", + "serde", "serde_json", "toml", - "winnow", "yaml-rust2", ] +[[package]] +name = "console" +version = "0.16.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d64e8af5551369d19cf50138de61f1c42074ab970f74e99be916646777f8fc87" +dependencies = [ + "encode_unicode", + "libc", + "windows-sys 0.61.2", +] + [[package]] name = "const-oid" -version = "0.10.2" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "const-random" @@ -1302,6 +1406,12 @@ dependencies = [ "tiny-keccak", ] +[[package]] +name = "constant_time_eq" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" + [[package]] name = "constant_time_eq" version = "0.4.2" @@ -1343,12 +1453,6 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" -[[package]] -name = "cpubits" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15b85f9c39137c3a891689859392b1bd49812121d0d61c9caf00d46ed5ce06ae" - [[package]] name = "cpufeatures" version = "0.2.17" @@ -1368,34 +1472,50 @@ dependencies = [ ] [[package]] -name = "crc32fast" -version = "1.5.0" +name = "crc" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d" dependencies = [ - "cfg-if", + "crc-catalog", ] [[package]] -name = "criterion" -version = "0.8.2" +name = "crc-catalog" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "950046b2aa2492f9a536f5f4f9a3de7b9e2476e575e05bd6c333371add4d98f3" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "criterion" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" dependencies = [ - "alloca", "anes", "cast", "ciborium", "clap", "criterion-plot", - "itertools 0.13.0", + "is-terminal", + "itertools 0.10.5", "num-traits", + "once_cell", "oorandom", - "page_size", "plotters", "rayon", "regex", "serde", + "serde_derive", "serde_json", "tinytemplate", "walkdir", @@ -1403,12 +1523,12 @@ dependencies = [ [[package]] name = "criterion-plot" -version = "0.8.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8d80a2f4f5b554395e47b5d8305bc3d27813bacb73493eb1001e8f76dae29ea" +checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" dependencies = [ "cast", - "itertools 0.13.0", + "itertools 0.10.5", ] [[package]] @@ -1465,28 +1585,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] -name = "crunchy" -version = "0.2.4" +name = "crossterm" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" +checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" +dependencies = [ + "bitflags", + "crossterm_winapi", + "document-features", + "parking_lot", + "rustix 1.1.4", + "winapi", +] [[package]] -name = "crypto-common" -version = "0.1.7" +name = "crossterm_winapi" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" dependencies = [ - "generic-array", - "typenum", + "winapi", ] +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + [[package]] name = "crypto-common" -version = "0.2.2" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "hybrid-array", + "generic-array", + "typenum", ] [[package]] @@ -1510,21 +1644,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "ctutils" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" -dependencies = [ - "cmov", -] - -[[package]] -name = "daachorse" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db756b5eb7d81d31f31f660f4132f8cf5698de52fca144c143d0ae0cbb5f2e06" - [[package]] name = "darling" version = "0.20.11" @@ -1596,9 +1715,9 @@ dependencies = [ [[package]] name = "dashmap" -version = "6.2.1" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6361d5c062261c78a176addb82d4c821ae42bed6089de0e12603cd25de2059c" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" dependencies = [ "cfg-if", "crossbeam-utils", @@ -1612,15 +1731,15 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.11.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4ae5f15dda3c708c0ade84bfee31ccab44a3da4f88015ed22f63732abe300c8" +checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" [[package]] name = "datafusion" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93db0e623840612f7f2cd757f7e8a8922064192363732c88692e0870016e141b" +checksum = "7541353e77dc7262b71ca27be07d8393661737e3a73b5d1b1c6f7d814c64fa2a" dependencies = [ "arrow", "arrow-schema", @@ -1667,9 +1786,9 @@ dependencies = [ [[package]] name = "datafusion-catalog" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37cefde60b26a7f4ff61e9d2ff2833322f91df2b568d7238afe67bde5bdffb66" +checksum = "9997731f90fa5398ef831ad0e69600f92c861b79c0d38bd1a29b6f0e3a0ce4c8" dependencies = [ "arrow", "async-trait", @@ -1692,9 +1811,9 @@ dependencies = [ [[package]] name = "datafusion-catalog-listing" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17e112307715d6a7a331111a4c2330ff54bc237183511c319e3708a4cff431fb" +checksum = "2b30a3dd50dec860c9559275c8d97d9de602e611237a6ecfbda0b3b63b872352" dependencies = [ "arrow", "async-trait", @@ -1715,9 +1834,9 @@ dependencies = [ [[package]] name = "datafusion-common" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d72a11ca44a95e1081870d3abb80c717496e8a7acb467a1d3e932bb636af5cc2" +checksum = "d551054acec0398ca604512310b77ce05c46f66e54b54d48200a686e385cca4e" dependencies = [ "ahash", "arrow", @@ -1726,7 +1845,6 @@ dependencies = [ "half", "hashbrown 0.16.1", "indexmap 2.14.0", - "itertools 0.14.0", "libc", "log", "object_store", @@ -1738,9 +1856,9 @@ dependencies = [ [[package]] name = "datafusion-common-runtime" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89f4afaed29670ec4fd6053643adc749fe3f4bc9d1ce1b8c5679b22c67d12def" +checksum = "567d40e285f5b79f8737b576605721cd6c1133b5d2b00bdbd5d9838d90d0812f" dependencies = [ "futures", "log", @@ -1749,9 +1867,9 @@ dependencies = [ [[package]] name = "datafusion-datasource" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9fb386e1691355355a96419978a0022b7947b44d4a24a6ea99f00b6b485cbb6" +checksum = "27d2668f51b3b30befae2207472569e37807fdedd1d14da58acc6f8ca6257eae" dependencies = [ "arrow", "async-trait", @@ -1778,9 +1896,9 @@ dependencies = [ [[package]] name = "datafusion-datasource-arrow" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffa6c52cfed0734c5f93754d1c0175f558175248bf686c944fb05c373e5fc096" +checksum = "e02e1b3e3a8ec55f1f62de4252b0407c8567363d056078769a197e24fc834a0f" dependencies = [ "arrow", "arrow-ipc", @@ -1802,9 +1920,9 @@ dependencies = [ [[package]] name = "datafusion-datasource-csv" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "503f29e0582c1fc189578d665ff57d9300da1f80c282777d7eb67bb79fb8cdca" +checksum = "b559d7bf87d4f900f847baba8509634f838d9718695389e903604cdcccdb01f3" dependencies = [ "arrow", "async-trait", @@ -1825,9 +1943,9 @@ dependencies = [ [[package]] name = "datafusion-datasource-json" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33804749abc8d0c8cb7473228483cb8070e524c6f6086ee1b85a64debe2b3d2" +checksum = "250e2d7591ba8b638f063854650faa40bca4e8bd4059b2ece8836f6388d02db4" dependencies = [ "arrow", "async-trait", @@ -1842,31 +1960,27 @@ dependencies = [ "datafusion-session", "futures", "object_store", - "serde_json", "tokio", - "tokio-stream", ] [[package]] name = "datafusion-doc" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de6ac0df1662b9148ad3c987978b32cbec7c772f199b1d53520c8fa764a87ee" +checksum = "b9496cb0db222dbb9a3735760ceca7fc56f35e1d5502c38d0caa77a81e9c1f6a" [[package]] name = "datafusion-execution" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03c7fbdaefcca4ef6ffe425a5fc2325763bfb426599bb0bf4536466efabe709" +checksum = "dc45d23c516ed8d3637751e44e09e21b45b3f58b473c802dddd1f1ad4fe435ff" dependencies = [ "arrow", - "arrow-buffer", "async-trait", "chrono", "dashmap", "datafusion-common", "datafusion-expr", - "datafusion-physical-expr-common", "futures", "log", "object_store", @@ -1878,9 +1992,9 @@ dependencies = [ [[package]] name = "datafusion-expr" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "574b9b6977fedbd2a611cbff12e5caf90f31640ad9dc5870f152836d94bad0dd" +checksum = "63dd30526d2db4fda6440806a41e4676334a94bc0596cc9cc2a0efed20ef2c44" dependencies = [ "arrow", "async-trait", @@ -1900,9 +2014,9 @@ dependencies = [ [[package]] name = "datafusion-expr-common" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d7c3adf3db8bf61e92eb90cb659c8e8b734593a8f7c8e12a843c7ddba24b87e" +checksum = "1b486b5f6255d40976b88bb83813b0d035a8333e0ec39864824e78068cf42fa6" dependencies = [ "arrow", "datafusion-common", @@ -1913,13 +2027,13 @@ dependencies = [ [[package]] name = "datafusion-functions" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28aa4e10384e782774b10e72aca4d93ef7b31aa653095d9d4536b0a3dbc51b6" +checksum = "07356c94118d881130dd0ffbff127540407d969c8978736e324edcd6c41cd48f" dependencies = [ "arrow", "arrow-buffer", - "base64", + "base64 0.22.1", "blake2", "blake3", "chrono", @@ -1934,20 +2048,19 @@ dependencies = [ "itertools 0.14.0", "log", "md-5", - "memchr", "num-traits", "rand 0.9.4", "regex", - "sha2 0.10.9", + "sha2", "unicode-segmentation", "uuid", ] [[package]] name = "datafusion-functions-aggregate" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00aa6217e56098ba84e0a338176fe52f0a84cca398021512c6c8c5eff806d0ad" +checksum = "b644f9cf696df9233ce6958b9807666d78563b56f923267474dd6c07795f1f8f" dependencies = [ "ahash", "arrow", @@ -1961,15 +2074,14 @@ dependencies = [ "datafusion-physical-expr-common", "half", "log", - "num-traits", "paste", ] [[package]] name = "datafusion-functions-aggregate-common" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b511250349407db7c43832ab2de63f5557b19a20dfd236b39ca2c04468b50d47" +checksum = "c1de2deaaabe8923ce9ea9f29c47bbb4ee14f67ea2fe1ab5398d9bbebcf86e56" dependencies = [ "ahash", "arrow", @@ -1980,9 +2092,9 @@ dependencies = [ [[package]] name = "datafusion-functions-nested" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef13a858e20d50f0a9bb5e96e7ac82b4e7597f247515bccca4fdd2992df0212a" +checksum = "552f8d92e4331ee91d23c02d12bb6acf32cbfd5215117e01c0fb63cd4b15af1a" dependencies = [ "arrow", "arrow-ord", @@ -1996,18 +2108,16 @@ dependencies = [ "datafusion-functions-aggregate-common", "datafusion-macros", "datafusion-physical-expr-common", - "hashbrown 0.16.1", "itertools 0.14.0", - "itoa", "log", "paste", ] [[package]] name = "datafusion-functions-table" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b40d3f5bbb3905f9ccb1ce9485a9595c77b69758a7c24d3ba79e334ff51e7e" +checksum = "970fd0cdd3df8802b9a9975ff600998289ba9d46682a4f7285cba4820c9ada78" dependencies = [ "arrow", "async-trait", @@ -2021,9 +2131,9 @@ dependencies = [ [[package]] name = "datafusion-functions-window" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4e88ec9d57c9b685d02f58bfee7be62d72610430ddcedb82a08e5d9925dbfb6" +checksum = "40b4c21a7c8a986a1866c0a87ab756d0bbf7b5f41f306009fa2d9af79c52ed31" dependencies = [ "arrow", "datafusion-common", @@ -2039,9 +2149,9 @@ dependencies = [ [[package]] name = "datafusion-functions-window-common" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8307bb93519b1a91913723a1130cfafeee3f72200d870d88e91a6fc5470ede5c" +checksum = "b1210ad73b8b3211aeaf4a42bef9bd7a2b7fce3ec119a478831f18c6ff7f7b93" dependencies = [ "datafusion-common", "datafusion-physical-expr-common", @@ -2049,9 +2159,9 @@ dependencies = [ [[package]] name = "datafusion-macros" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e367e6a71051d0ebdd29b2f85d12059b38b1d1f172c6906e80016da662226bd" +checksum = "aaa566a963013a38681ad82a727a654bc7feb19632426aea8c3412d415d200c5" dependencies = [ "datafusion-doc", "quote", @@ -2060,9 +2170,9 @@ dependencies = [ [[package]] name = "datafusion-optimizer" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e929015451a67f77d9d8b727b2bf3a40c4445fdef6cdc53281d7d97c76888ace" +checksum = "ff9aa82b240252a88dee118372f9b9757c545ab9e53c0736bebab2e7da0ef1f2" dependencies = [ "arrow", "chrono", @@ -2079,9 +2189,9 @@ dependencies = [ [[package]] name = "datafusion-physical-expr" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b1e68aba7a4b350401cfdf25a3d6f989ad898a7410164afe9ca52080244cb59" +checksum = "7d48022b8af9988c1d852644f9e8b5584c490659769a550c5e8d39457a1da0a5" dependencies = [ "ahash", "arrow", @@ -2096,15 +2206,15 @@ dependencies = [ "itertools 0.14.0", "parking_lot", "paste", - "petgraph", + "petgraph 0.8.3", "tokio", ] [[package]] name = "datafusion-physical-expr-adapter" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea22315f33cf2e0adc104e8ec42e285f6ed93998d565c65e82fec6a9ee9f9db4" +checksum = "ae7a8abc0b4fe624000972a9b145b30b7f1b680bffaa950ea53f78d9b21c27c3" dependencies = [ "arrow", "datafusion-common", @@ -2117,9 +2227,9 @@ dependencies = [ [[package]] name = "datafusion-physical-expr-common" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b04b45ea8ad3ac2d78f2ea2a76053e06591c9629c7a603eda16c10649ecf4362" +checksum = "147253ca3e6b9d59c162de64c02800973018660e13340dd1886dd038d17ac429" dependencies = [ "ahash", "arrow", @@ -2134,9 +2244,9 @@ dependencies = [ [[package]] name = "datafusion-physical-optimizer" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cb13397809a425918f608dfe8653f332015a3e330004ab191b4404187238b95" +checksum = "689156bb2282107b6239db8d7ef44b4dab10a9b33d3491a0c74acac5e4fedd72" dependencies = [ "arrow", "datafusion-common", @@ -2152,9 +2262,9 @@ dependencies = [ [[package]] name = "datafusion-physical-plan" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5edc023675791af9d5fb4cc4c24abf5f7bd3bd4dcf9e5bd90ea1eff6976dcc79" +checksum = "68253dc0ee5330aa558b2549c9b0da5af9fc17d753ae73022939014ad616fc28" dependencies = [ "ahash", "arrow", @@ -2176,7 +2286,6 @@ dependencies = [ "indexmap 2.14.0", "itertools 0.14.0", "log", - "num-traits", "parking_lot", "pin-project-lite", "tokio", @@ -2184,9 +2293,9 @@ dependencies = [ [[package]] name = "datafusion-pruning" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac8c76860e355616555081cab5968cec1af7a80701ff374510860bcd567e365a" +checksum = "0fcad240a54d0b1d3e8f668398900260a53122d522b2102ab57218590decacd6" dependencies = [ "arrow", "datafusion-common", @@ -2201,9 +2310,9 @@ dependencies = [ [[package]] name = "datafusion-session" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5412111aa48e2424ba926112e192f7a6b7e4ccb450145d25ce5ede9f19dc491e" +checksum = "f58e83a68bb67007a8fcbf005c44cefe441270c7ee7f6dee10c0e0109b556f6d" dependencies = [ "async-trait", "datafusion-common", @@ -2215,28 +2324,21 @@ dependencies = [ [[package]] name = "datafusion-sql" -version = "53.1.0" +version = "52.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0d133ddf8b9b3b872acac900157f783e7b879fe9a6bccf389abebbfac45ec1" +checksum = "be53e9eb55db0fbb8980bb6d87f2435b0524acf4c718ed54a57cabbb299b2ab3" dependencies = [ "arrow", "bigdecimal", "chrono", "datafusion-common", "datafusion-expr", - "datafusion-functions-nested", "indexmap 2.14.0", "log", "regex", "sqlparser", ] -[[package]] -name = "datasketches" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c286de4e81ea2590afc24d754e0f83810c566f50a1388fa75ebd57928c0d9745" - [[package]] name = "db4-graph" version = "0.18.0" @@ -2260,7 +2362,7 @@ dependencies = [ "dashmap", "either", "iter-enum", - "itertools 0.14.0", + "itertools 0.13.0", "lock_api", "once_cell", "parking_lot", @@ -2338,9 +2440,9 @@ dependencies = [ [[package]] name = "der" -version = "0.8.0" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71fd89660b2dc699704064e59e9dba0147b903e85319429e131620d022be411b" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" dependencies = [ "const-oid", ] @@ -2355,6 +2457,17 @@ dependencies = [ "serde_core", ] +[[package]] +name = "derive_arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "derive_builder" version = "0.20.2" @@ -2436,24 +2549,11 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.4", - "crypto-common 0.1.7", + "block-buffer", + "crypto-common", "subtle", ] -[[package]] -name = "digest" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" -dependencies = [ - "block-buffer 0.12.0", - "const-oid", - "crypto-common 0.2.2", - "ctutils", - "zeroize", -] - [[package]] name = "dirs" version = "6.0.0" @@ -2501,12 +2601,27 @@ dependencies = [ "const-random", ] +[[package]] +name = "document-features" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" +dependencies = [ + "litrs", +] + [[package]] name = "dotenv" version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + [[package]] name = "downcast-rs" version = "2.0.2" @@ -2536,9 +2651,8 @@ checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "dynamic-graphql" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d58055cecef1736f42bee8819059054e18239cda3d5de56b0c8836c2a2322b" +version = "0.10.1" +source = "git+https://github.com/miratepuffin/dynamic-graphql?branch=add-arg-descriptions#69a07c5fe3c16b4baf76f676c96cde5865cae1de" dependencies = [ "async-graphql", "dynamic-graphql-derive", @@ -2547,9 +2661,8 @@ dependencies = [ [[package]] name = "dynamic-graphql-derive" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff1e2aa3d6affef7ce88263e83c0110b11f57409cf25aa81689bcc5f023a602e" +version = "0.10.1" +source = "git+https://github.com/miratepuffin/dynamic-graphql?branch=add-arg-descriptions#69a07c5fe3c16b4baf76f676c96cde5865cae1de" dependencies = [ "Inflector", "darling 0.20.11", @@ -2562,9 +2675,15 @@ dependencies = [ [[package]] name = "either" -version = "1.16.0" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + +[[package]] +name = "encode_unicode" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "encoding_rs" @@ -2576,13 +2695,10 @@ dependencies = [ ] [[package]] -name = "encoding_rs_io" -version = "0.1.7" +name = "endian-type" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cc3c5651fb62ab8aa3103998dade57efdd028544bd300516baa31840c252a83" -dependencies = [ - "encoding_rs", -] +checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" [[package]] name = "env_filter" @@ -2593,6 +2709,19 @@ dependencies = [ "log", ] +[[package]] +name = "env_logger" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + [[package]] name = "env_logger" version = "0.11.10" @@ -2611,17 +2740,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" -[[package]] -name = "erased-serde" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" -dependencies = [ - "serde", - "serde_core", - "typeid", -] - [[package]] name = "errno" version = "0.3.14" @@ -2632,11 +2750,17 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "error-code" +version = "3.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dea2df4cf52843e0452895c455a1a2cfbb842a1e7329671acf418fdc53ed4c59" + [[package]] name = "ethnum" -version = "1.5.3" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40404c3f5f511ec4da6fe866ddf6a717c309fdbb69fbbad7b0f3edab8f2e835f" +checksum = "ca81e6b4777c89fd810c25a4be2b1bd93ea034fbe58e6a75216a34c6b82c539b" [[package]] name = "event-listener" @@ -2672,14 +2796,13 @@ dependencies = [ [[package]] name = "fake" -version = "5.1.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6be833b323a56361118a747470a45a1bcd5c52a2ec9b1e40c83dafe687e453" +checksum = "aef603df4ba9adbca6a332db7da6f614f21eafefbaf8e087844e452fdec152d0" dependencies = [ "chrono", "deunicode", - "either", - "rand 0.10.1", + "rand 0.8.5", ] [[package]] @@ -2709,6 +2832,17 @@ version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" +[[package]] +name = "fd-lock" +version = "4.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce92ff622d6dadf7349484f42c93271a0d49b7cc4d466a936405bacbe10aa78" +dependencies = [ + "cfg-if", + "rustix 1.1.4", + "windows-sys 0.59.0", +] + [[package]] name = "find-msvc-tools" version = "0.1.9" @@ -2727,7 +2861,7 @@ version = "25.12.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35f6839d7b3b98adde531effaf34f0c2badc6f4735d26fe74709d8e513a96ef3" dependencies = [ - "bitflags 2.11.1", + "bitflags", "rustc_version", ] @@ -2771,12 +2905,12 @@ dependencies = [ [[package]] name = "fs4" -version = "0.13.1" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8640e34b88f7652208ce9e88b1a37a2ae95227d84abec377ccd3c5cfeb141ed4" +checksum = "f7e180ac76c23b45e767bd7ae9579bc0bb458618c4bc71835926e098e61d15f8" dependencies = [ - "rustix", - "windows-sys 0.59.0", + "rustix 0.38.44", + "windows-sys 0.52.0", ] [[package]] @@ -2787,9 +2921,9 @@ checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" [[package]] name = "fsst" -version = "7.0.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcd0ce0249ac12fd44fcde62d435c36d881952c2f0df4d1de24b45e1dbba5ddb" +checksum = "2195cc7f87e84bd695586137de99605e7e9579b26ec5e01b82960ddb4d0922f2" dependencies = [ "arrow-array", "rand 0.9.4", @@ -2893,9 +3027,9 @@ checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" [[package]] name = "futures-timer" -version = "3.0.4" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af43fadb8a98512d547e37b4e92e0ced13e205c061b87b4623eff01d918d6968" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" @@ -2931,9 +3065,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.7" +version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" dependencies = [ "typenum", "version_check", @@ -2973,20 +3107,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if", - "js-sys", "libc", "r-efi 6.0.0", - "rand_core 0.10.1", "wasip2", "wasip3", - "wasm-bindgen", ] [[package]] name = "glam" -version = "0.33.0" +version = "0.29.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fb167719045debebe9f532320accc7b5c993c5a3b813f5696a11d5ca7bdc57b" +checksum = "8babf46d4c1c9d92deac9f7be466f76dfc4482b6452fc5024b5e8daf6ffeb3ee" [[package]] name = "glob" @@ -2996,9 +3127,9 @@ checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "h2" -version = "0.4.14" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "171fefbc92fe4a4de27e0698d6a5b392d6a0e333506bc49133760b3bcf948733" +checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" dependencies = [ "atomic-waker", "bytes", @@ -3028,9 +3159,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "6.4.1" +version = "6.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d43ccdfe15a81ab0a8af639e90254227c9a46afd9c5f5b6ec7efaa345c4b0f00" +checksum = "9b3f9296c208515b87bd915a2f5d1163d4b3f863ba83337d7713cf478055948e" dependencies = [ "derive_builder", "log", @@ -3053,6 +3184,10 @@ name = "hashbrown" version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", +] [[package]] name = "hashbrown" @@ -3060,6 +3195,8 @@ version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ + "allocator-api2", + "equivalent", "foldhash 0.1.5", ] @@ -3076,22 +3213,17 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.17.1" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" -dependencies = [ - "allocator-api2", - "equivalent", - "foldhash 0.2.0", -] +checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" [[package]] name = "hashlink" -version = "0.11.0" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea0b22561a9c04a7cb1a302c013e0259cd3b4bb619f145b32f72b8b4bcbed230" +checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" dependencies = [ - "hashbrown 0.16.1", + "hashbrown 0.14.5", ] [[package]] @@ -3100,13 +3232,13 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3314d5adb5d94bcdf56771f2e50dbbc80bb4bdf88967526706205ac9eff24eb" dependencies = [ - "base64", + "base64 0.22.1", "bytes", "headers-core", "http", "httpdate", "mime", - "sha1 0.10.6", + "sha1", ] [[package]] @@ -3136,7 +3268,7 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad82d6598ccf1dac15c8b758a1bd282b755b6776be600429176757190a1b0202" dependencies = [ - "bitflags 2.11.1", + "bitflags", "byteorder", "heed-traits", "heed-types", @@ -3161,7 +3293,7 @@ version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c255bdf46e07fb840d120a36dcc81f385140d7191c76a7391672675c01a55d" dependencies = [ - "bincode", + "bincode 1.3.3", "byteorder", "heed-traits", "serde", @@ -3182,11 +3314,20 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hmac" -version = "0.13.0" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "home" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6303bc9732ae41b04cb554b844a762b4115a61bfaa81e3e83050991eeb56863f" +checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" dependencies = [ - "digest 0.11.3", + "windows-sys 0.61.2", ] [[package]] @@ -3246,15 +3387,6 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" -[[package]] -name = "hybrid-array" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9155a582abd142abc056962c29e3ce5ff2ad5469f4246b537ed42c5deba857da" -dependencies = [ - "typenum", -] - [[package]] name = "hyper" version = "1.9.0" @@ -3291,6 +3423,7 @@ dependencies = [ "tokio", "tokio-rustls", "tower-service", + "webpki-roots 1.0.6", ] [[package]] @@ -3312,7 +3445,7 @@ version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ - "base64", + "base64 0.22.1", "bytes", "futures-channel", "futures-util", @@ -3323,7 +3456,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2", + "socket2 0.6.3", "tokio", "tower-service", "tracing", @@ -3469,9 +3602,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.2" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ "icu_normalizer", "icu_properties", @@ -3495,7 +3628,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.17.1", + "hashbrown 0.17.0", "rayon", "serde", "serde_core", @@ -3512,11 +3645,24 @@ dependencies = [ [[package]] name = "inout" -version = "0.2.2" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "generic-array", +] + +[[package]] +name = "insta" +version = "1.47.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4250ce6452e92010fdf7268ccc5d14faa80bb12fc741938534c58f16804e03c7" +checksum = "7b4a6248eb93a4401ed2f37dfe8ea592d3cf05b7cf4f8efa867b6895af7e094e" dependencies = [ - "hybrid-array", + "console", + "once_cell", + "serde", + "similar", + "tempfile", ] [[package]] @@ -3526,6 +3672,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", ] [[package]] @@ -3544,21 +3693,31 @@ dependencies = [ ] [[package]] -name = "io-uring" +name = "ipnet" +version = "2.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" + +[[package]] +name = "iri-string" version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d09b98f7eace8982db770e4408e7470b028ce513ac28fecdc6bf4c30fe92b62" +checksum = "25e659a4bb38e810ebc252e53b5814ff908a8c58c2a9ce2fae1bbec24cbf4e20" dependencies = [ - "bitflags 2.11.1", - "cfg-if", - "libc", + "memchr", + "serde", ] [[package]] -name = "ipnet" -version = "2.12.0" +name = "is-terminal" +version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" +checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys 0.61.2", +] [[package]] name = "is_terminal_polyfill" @@ -3577,55 +3736,51 @@ dependencies = [ [[package]] name = "itertools" -version = "0.13.0" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" dependencies = [ "either", ] [[package]] name = "itertools" -version = "0.14.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" dependencies = [ "either", ] [[package]] -name = "itoa" -version = "1.0.18" +name = "itertools" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] [[package]] -name = "jieba-macros" -version = "0.9.0" +name = "itertools" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a29cfc5dcd898604c6f80363411fa6b6b08e27d1d253d6225b9cb6702ea02fc0" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" dependencies = [ - "phf_codegen 0.13.1", + "either", ] [[package]] -name = "jieba-rs" -version = "0.9.0" +name = "itoa" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3245d6e9d1d5facbd6a23848d6b67e3439738ccbb4fa5a3d65da315ba1a910a2" -dependencies = [ - "cedarwood", - "jieba-macros", - "phf 0.13.1", - "regex", - "rustc-hash", -] +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "jiff" -version = "0.2.24" +version = "0.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f00b5dbd620d61dfdcb6007c9c1f6054ebd75319f163d886a9055cec1155073d" +checksum = "1a3546dc96b6d42c5f24902af9e2538e82e39ad350b0c766eb3fbf2d8f3d8359" dependencies = [ "jiff-static", "jiff-tzdb-platform", @@ -3638,9 +3793,9 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.24" +version = "0.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e000de030ff8022ea1da3f466fbb0f3a809f5e51ed31f6dd931c35181ad8e6d7" +checksum = "2a8c8b344124222efd714b73bb41f8b5120b27a7cc1c75593a6ff768d9d05aa4" dependencies = [ "proc-macro2", "quote", @@ -3663,69 +3818,20 @@ dependencies = [ ] [[package]] -name = "jni" -version = "0.22.4" +name = "jobserver" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ - "cfg-if", - "combine", - "jni-macros", - "jni-sys", - "log", - "simd_cesu8", - "thiserror 2.0.18", - "walkdir", - "windows-link", + "getrandom 0.3.4", + "libc", ] [[package]] -name = "jni-macros" -version = "0.22.4" +name = "js-sys" +version = "0.3.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" -dependencies = [ - "proc-macro2", - "quote", - "rustc_version", - "simd_cesu8", - "syn 2.0.117", -] - -[[package]] -name = "jni-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" -dependencies = [ - "jni-sys-macros", -] - -[[package]] -name = "jni-sys-macros" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" -dependencies = [ - "quote", - "syn 2.0.117", -] - -[[package]] -name = "jobserver" -version = "0.1.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" -dependencies = [ - "getrandom 0.3.4", - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.98" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67df7112613f8bfd9150013a0314e196f4800d3201ae742489d999db2f979f08" +checksum = "2964e92d1d9dc3364cae4d718d93f227e3abb088e747d92e0395bfdedf1c12ca" dependencies = [ "cfg-if", "futures-util", @@ -3766,12 +3872,12 @@ dependencies = [ [[package]] name = "jsonwebtoken" -version = "10.4.0" +version = "10.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eba32bfb4ffdeaca3e34431072faf01745c9b26d25504aa7a6cf5684334fc4fc" +checksum = "0529410abe238729a60b108898784df8984c87f6054c9c4fcacc47e4803c1ce1" dependencies = [ "aws-lc-rs", - "base64", + "base64 0.22.1", "getrandom 0.2.17", "js-sys", "pem", @@ -3779,16 +3885,6 @@ dependencies = [ "serde_json", "signature", "simple_asn1", - "zeroize", -] - -[[package]] -name = "kanaria" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0f9d9652540055ac4fded998a73aca97d965899077ab1212587437da44196ff" -dependencies = [ - "bitflags 1.3.2", ] [[package]] @@ -3804,16 +3900,14 @@ dependencies = [ [[package]] name = "lance" -version = "7.0.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3944aca86f4c78f4da04af1c2bf33e664a2826b7af72972ad200d6b9de59019f" +checksum = "efe6c3ddd79cdfd2b7e1c23cafae52806906bc40fbd97de9e8cf2f8c7a75fc04" dependencies = [ - "arc-swap", "arrow", "arrow-arith", "arrow-array", "arrow-buffer", - "arrow-cast", "arrow-ipc", "arrow-ord", "arrow-row", @@ -3822,11 +3916,9 @@ dependencies = [ "async-recursion", "async-trait", "async_cell", - "bitpacking", "byteorder", "bytes", "chrono", - "crossbeam-queue", "crossbeam-skiplist", "dashmap", "datafusion", @@ -3850,22 +3942,20 @@ dependencies = [ "lance-linalg", "lance-namespace", "lance-table", - "lance-tokenizer", "log", "moka", "object_store", "permutation", "pin-project", - "prost", - "prost-build", - "prost-types", + "prost 0.14.3", + "prost-types 0.14.3", "rand 0.9.4", - "rayon", - "roaring", + "roaring 0.11.3", "semver", "serde", "serde_json", "snafu 0.9.0", + "tantivy 0.24.2", "tokio", "tokio-stream", "tokio-util", @@ -3876,14 +3966,14 @@ dependencies = [ [[package]] name = "lance-arrow" -version = "7.0.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "253f4a0a70580c985b91e65e9ca6cad644825a4078de28d8efbacf3ffbd7ecdc" +checksum = "5d9f5d95bdda2a2b790f1fb8028b5b6dcf661abeb3133a8bca0f3d24b054af87" dependencies = [ "arrow-array", "arrow-buffer", + "arrow-cast", "arrow-data", - "arrow-ipc", "arrow-ord", "arrow-schema", "arrow-select", @@ -3898,9 +3988,9 @@ dependencies = [ [[package]] name = "lance-bitpacking" -version = "7.0.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80c4d12521b1945041dd515a56aa0854973138e7ac12111c92572e33e4ecb593" +checksum = "f827d6ab9f8f337a9509d5ad66a12f3314db8713868260521c344ef6135eb4e4" dependencies = [ "arrayref", "paste", @@ -3909,9 +3999,9 @@ dependencies = [ [[package]] name = "lance-core" -version = "7.0.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13f84020da5a484e2f07dd1796e09785ed7cd889857ebc4cb77e32ef214ee594" +checksum = "0f1e25df6a79bf72ee6bcde0851f19b1cd36c5848c1b7db83340882d3c9fdecb" dependencies = [ "arrow-array", "arrow-buffer", @@ -3919,6 +4009,7 @@ dependencies = [ "async-trait", "byteorder", "bytes", + "chrono", "datafusion-common", "datafusion-sql", "deepsize", @@ -3927,13 +4018,14 @@ dependencies = [ "lance-arrow", "libc", "log", + "mock_instant", "moka", "num_cpus", "object_store", "pin-project", - "prost", + "prost 0.14.3", "rand 0.9.4", - "roaring", + "roaring 0.11.3", "serde_json", "snafu 0.9.0", "tempfile", @@ -3946,14 +4038,13 @@ dependencies = [ [[package]] name = "lance-datafusion" -version = "7.0.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7460597a66534a75987993d4dac5bc330586d99c5b79ae73367dbcbd4e29e576" +checksum = "93146de8ae720cb90edef81c2f2d0a1b065fc2f23ecff2419546f389b0fa70a4" dependencies = [ "arrow", "arrow-array", "arrow-buffer", - "arrow-cast", "arrow-ord", "arrow-schema", "arrow-select", @@ -3970,17 +4061,18 @@ dependencies = [ "lance-datagen", "log", "pin-project", - "prost", - "prost-build", + "prost 0.14.3", + "prost-build 0.14.3", + "snafu 0.9.0", "tokio", "tracing", ] [[package]] name = "lance-datagen" -version = "7.0.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046f5506ed2271cd941a050de7bf535dd3aedc291aadec836a63fa56c5926e3b" +checksum = "ccec8ce4d8e0a87a99c431dab2364398029f2ffb649c1a693c60c79e05ed30dd" dependencies = [ "arrow", "arrow-array", @@ -3991,16 +4083,16 @@ dependencies = [ "half", "hex", "rand 0.9.4", - "rand_distr", + "rand_distr 0.5.1", "rand_xoshiro", "random_word", ] [[package]] name = "lance-encoding" -version = "7.0.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7af54edf43dcf9d6a56cc636eb35d457e68373c6448dca3f0891b3325b4a24e6" +checksum = "5c1aec0bbbac6bce829bc10f1ba066258126100596c375fb71908ecf11c2c2a5" dependencies = [ "arrow-arith", "arrow-array", @@ -4023,9 +4115,11 @@ dependencies = [ "log", "lz4", "num-traits", - "prost", - "prost-build", + "prost 0.14.3", + "prost-build 0.14.3", + "prost-types 0.14.3", "rand 0.9.4", + "snafu 0.9.0", "strum 0.26.3", "tokio", "tracing", @@ -4035,9 +4129,9 @@ dependencies = [ [[package]] name = "lance-file" -version = "7.0.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0772ae2d6207995dc1eb28aff9507f78e90b3362b58f311da001e9dc25f3d736" +checksum = "14a8c548804f5b17486dc2d3282356ed1957095a852780283bc401fdd69e9075" dependencies = [ "arrow-arith", "arrow-array", @@ -4059,20 +4153,20 @@ dependencies = [ "log", "num-traits", "object_store", - "prost", - "prost-build", - "prost-types", + "prost 0.14.3", + "prost-build 0.14.3", + "prost-types 0.14.3", + "snafu 0.9.0", "tokio", "tracing", ] [[package]] name = "lance-index" -version = "7.0.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e71fbfb51096a903cb524fe0da716f5f15fbc4a6b6f84cd6dec21abf319c5e84" +checksum = "2da212f0090ea59f79ac3686660f596520c167fe1cb5f408900cf71d215f0e03" dependencies = [ - "arc-swap", "arrow", "arrow-arith", "arrow-array", @@ -4091,13 +4185,13 @@ dependencies = [ "datafusion-common", "datafusion-expr", "datafusion-physical-expr", + "datafusion-sql", "deepsize", "dirs", "fst", "futures", "half", "itertools 0.13.0", - "jieba-rs", "jsonb", "lance-arrow", "lance-core", @@ -4108,23 +4202,24 @@ dependencies = [ "lance-io", "lance-linalg", "lance-table", - "lance-tokenizer", "libm", "log", "ndarray 0.16.1", "num-traits", "object_store", - "prost", - "prost-build", - "prost-types", + "prost 0.14.3", + "prost-build 0.14.3", + "prost-types 0.14.3", "rand 0.9.4", - "rand_distr", + "rand_distr 0.5.1", "rangemap", "rayon", - "roaring", + "roaring 0.11.3", "serde", "serde_json", "smallvec", + "snafu 0.9.0", + "tantivy 0.24.2", "tempfile", "tokio", "tracing", @@ -4134,9 +4229,9 @@ dependencies = [ [[package]] name = "lance-io" -version = "7.0.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab8c98ef1b870b20541d27f3ca4efdf7c9f5c25214233be07d231ba88900219" +checksum = "41d958eb4b56f03bbe0f5f85eb2b4e9657882812297b6f711f201ffc995f259f" dependencies = [ "arrow", "arrow-arith", @@ -4154,18 +4249,17 @@ dependencies = [ "deepsize", "futures", "http", - "io-uring", "lance-arrow", "lance-core", "lance-namespace", "log", - "moka", "object_store", "path_abs", "pin-project", - "prost", + "prost 0.14.3", "rand 0.9.4", "serde", + "snafu 0.9.0", "tempfile", "tokio", "tracing", @@ -4174,9 +4268,9 @@ dependencies = [ [[package]] name = "lance-linalg" -version = "7.0.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4c51cad0ac780b02dc4da48528479e7693c03e8d05390510bbc69ca2a9a1f1" +checksum = "0285b70da35def7ed95e150fae1d5308089554e1290470403ed3c50cb235bc5e" dependencies = [ "arrow-array", "arrow-buffer", @@ -4192,64 +4286,65 @@ dependencies = [ [[package]] name = "lance-namespace" -version = "7.0.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "014e8332ca0615506342e0d3af608639864b68396973be14239f09c9f21f1fc2" +checksum = "5f78e2a828b654e062a495462c6e3eb4fcf0e7e907d761b8f217fc09ccd3ceac" dependencies = [ "arrow", "async-trait", "bytes", "lance-core", "lance-namespace-reqwest-client", + "serde", "snafu 0.9.0", ] [[package]] name = "lance-namespace-impls" -version = "7.0.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8d1231906a3cf92dd3dcda7d14a09c4835af6cd2bcd76dfd2481e87f20a282d" +checksum = "a2392314f3da38f00d166295e44244208a65ccfc256e274fa8631849fc3f4d94" dependencies = [ "arrow", "arrow-ipc", "arrow-schema", "async-trait", "bytes", + "chrono", "futures", "lance", "lance-core", "lance-index", "lance-io", - "lance-linalg", "lance-namespace", "lance-table", "log", "object_store", "rand 0.9.4", "serde_json", + "snafu 0.9.0", "tokio", "url", ] [[package]] name = "lance-namespace-reqwest-client" -version = "0.7.7" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6369eee4682fb11edf538388b43c61ce288b8302fe89bb40944d7daa7faaae99" +checksum = "ee2e48de899e2931afb67fcddd0a08e439bf5d8b6ea2a2ed9cb8f4df669bd5cc" dependencies = [ - "reqwest 0.12.28", + "reqwest", "serde", "serde_json", "serde_repr", - "serde_with", "url", ] [[package]] name = "lance-table" -version = "7.0.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b16f1355904aea4ebb04ffc70c58c97901e10bde44452b4b021de4a1f329250d" +checksum = "3df9c4adca3eb2074b3850432a9fb34248a3d90c3d6427d158b13ff9355664ee" dependencies = [ "arrow", "arrow-array", @@ -4268,12 +4363,12 @@ dependencies = [ "lance-io", "log", "object_store", - "prost", - "prost-build", - "prost-types", + "prost 0.14.3", + "prost-build 0.14.3", + "prost-types 0.14.3", "rand 0.9.4", "rangemap", - "roaring", + "roaring 0.11.3", "semver", "serde", "serde_json", @@ -4286,9 +4381,9 @@ dependencies = [ [[package]] name = "lance-testing" -version = "7.0.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3094c2aacbd1fa093d809fc54fa911e3498671ba451041341d7caaa18460e6b2" +checksum = "7ed7119bdd6983718387b4ac44af873a165262ca94f181b104cd6f97912eb3bf" dependencies = [ "arrow-array", "arrow-schema", @@ -4297,24 +4392,11 @@ dependencies = [ "rand 0.9.4", ] -[[package]] -name = "lance-tokenizer" -version = "7.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39b7f5ed9d0c0b716bf599b559d888267ed1dfe4c4e29d3648b51d2a28940cf" -dependencies = [ - "jieba-rs", - "lindera", - "rust-stemmers", - "serde", - "unicode-normalization", -] - [[package]] name = "lancedb" -version = "0.30.0" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9db595d8da6c1fbf41ef6a547f27a73cc1105d83a837e8c76ce08743a3c09260" +checksum = "ce0f4d7f739dc30608fe8b202cbb40986c2937e1a5a189f98fb06d7b8543156a" dependencies = [ "ahash", "arrow", @@ -4447,17 +4529,11 @@ dependencies = [ "lexical-util", ] -[[package]] -name = "libbz2-rs-sys" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34b357333733e8260735ba5894eb928c02ecc69c78715f01a8019e7fa7f2db4c" - [[package]] name = "libc" -version = "0.2.186" +version = "0.2.185" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" +checksum = "52ff2c0fe9bc6cb6b14a0592c2ff4fa9ceb83eea9db979b0487cd054946a2b8f" [[package]] name = "libm" @@ -4475,58 +4551,10 @@ dependencies = [ ] [[package]] -name = "lindera" -version = "3.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74cda79d7161e99b414e4d292ff673cc3f8d22f070d8be3b6185c033363a9216" -dependencies = [ - "anyhow", - "byteorder", - "csv", - "daachorse", - "kanaria", - "lindera-dictionary", - "log", - "once_cell", - "percent-encoding", - "regex", - "serde", - "serde_json", - "serde_yaml_ng", - "strum 0.28.0", - "strum_macros 0.28.0", - "unicode-blocks", - "unicode-normalization", - "unicode-segmentation", - "url", -] - -[[package]] -name = "lindera-dictionary" -version = "3.0.7" +name = "linux-raw-sys" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2385456ca9fe87c29072c5f156b52fdd5e28d5b5738ddfb3979501dbd736530" -dependencies = [ - "anyhow", - "byteorder", - "csv", - "daachorse", - "derive_builder", - "encoding_rs", - "encoding_rs_io", - "glob", - "log", - "memmap2", - "num_cpus", - "once_cell", - "regex", - "rkyv", - "serde", - "serde_json", - "strum 0.28.0", - "strum_macros 0.28.0", - "thiserror 2.0.18", -] +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" @@ -4540,6 +4568,12 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" +[[package]] +name = "litrs" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" + [[package]] name = "lmdb-master-sys" version = "0.2.6" @@ -4582,11 +4616,11 @@ dependencies = [ [[package]] name = "lru" -version = "0.16.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.16.1", + "hashbrown 0.15.5", ] [[package]] @@ -4616,20 +4650,38 @@ dependencies = [ [[package]] name = "lz4_flex" -version = "0.13.1" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "373f5eceeeab7925e0c1098212f2fbc4d416adec9d35051a6ab251e824c1854a" + +[[package]] +name = "lz4_flex" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef0d4ed8669f8f8826eb00dc878084aa8f253506c4fd5e8f58f5bce72ddb97e" +checksum = "98c23545df7ecf1b16c303910a69b079e8e251d60f7dd2cc9b4177f2afaf1746" dependencies = [ "twox-hash", ] [[package]] -name = "lzma-rust2" -version = "0.16.4" +name = "lzma-rs" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "297e814c836ae64db86b36cf2a557ba54368d03f6afcd7d947c266692f71115e" +dependencies = [ + "byteorder", + "crc", +] + +[[package]] +name = "lzma-sys" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce716bf1a316f47a280fc76295f6495b5bea4752bca01c3b3885e101b1c23c02" +checksum = "5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27" dependencies = [ - "sha2 0.11.0", + "cc", + "libc", + "pkg-config", ] [[package]] @@ -4656,6 +4708,12 @@ dependencies = [ "regex-automata", ] +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + [[package]] name = "matchit" version = "0.8.4" @@ -4682,7 +4740,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" dependencies = [ "cfg-if", - "digest 0.10.7", + "digest", +] + +[[package]] +name = "measure_time" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbefd235b0aadd181626f281e1d684e116972988c14c264e42069d5e8a5775cc" +dependencies = [ + "instant", + "log", ] [[package]] @@ -4715,6 +4783,15 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38d1115007560874e373613744c6fba374c17688327a71c1476d1a5954cc857b" +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + [[package]] name = "mime" version = "0.3.17" @@ -4733,9 +4810,9 @@ dependencies = [ [[package]] name = "minijinja" -version = "2.20.0" +version = "2.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2929e494b2280e1e18959bb2e121da03347ae896896fdfaceaab43c88a02803f" +checksum = "805bfd7352166bae857ee569628b52bcd85a1cecf7810861ebceb1686b72b75d" dependencies = [ "memo-map", "serde", @@ -4743,9 +4820,9 @@ dependencies = [ [[package]] name = "minijinja-contrib" -version = "2.20.0" +version = "2.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99df5123c54391e2a228014c1dbbd85a3dab08a25e776c810526f2f47542b3de" +checksum = "45092d80391870622fcf3bd82f5d2af18f99533ea60debb4bc9db0c76f0e809a" dependencies = [ "minijinja", "serde", @@ -4779,6 +4856,12 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "mock_instant" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce6dd36094cac388f119d2e9dc82dc730ef91c32a6222170d630e5414b956e6" + [[package]] name = "moka" version = "0.12.15" @@ -4822,26 +4905,6 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" -[[package]] -name = "munge" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e17401f259eba956ca16491461b6e8f72913a0a114e39736ce404410f915a0c" -dependencies = [ - "munge_macro", -] - -[[package]] -name = "munge_macro" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "murmurhash32" version = "0.3.1" @@ -4916,13 +4979,33 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "nibble_vec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" +dependencies = [ + "smallvec", +] + +[[package]] +name = "nix" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +dependencies = [ + "bitflags", + "cfg-if", + "libc", +] + [[package]] name = "nix" version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ - "bitflags 2.11.1", + "bitflags", "cfg-if", "cfg_aliases", "libc", @@ -4991,9 +5074,9 @@ dependencies = [ [[package]] name = "num-conv" -version = "0.2.2" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" +checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967" [[package]] name = "num-integer" @@ -5063,9 +5146,9 @@ dependencies = [ [[package]] name = "numpy" -version = "0.28.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "778da78c64ddc928ebf5ad9df5edf0789410ff3bdbf3619aed51cd789a6af1e2" +checksum = "7aac2e6a6e4468ffa092ad43c39b81c79196c2bb773b8db4085f695efe3bba17" dependencies = [ "half", "libc", @@ -5075,21 +5158,19 @@ dependencies = [ "num-traits", "pyo3", "pyo3-build-config", - "rustc-hash", + "rustc-hash 2.1.2", ] [[package]] name = "object_store" -version = "0.13.2" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622acbc9100d3c10e2ee15804b0caa40e55c933d5aa53814cd520805b7958a49" +checksum = "fbfbfff40aeccab00ec8a910b57ca8ecf4319b335c542f2edcd19dd25a1e2a00" dependencies = [ "async-trait", "bytes", "chrono", - "futures-channel", - "futures-core", - "futures-util", + "futures", "http", "humantime", "itertools 0.14.0", @@ -5142,79 +5223,81 @@ checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" [[package]] name = "opentelemetry" -version = "0.32.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0142c63252a9e054e68a4c61a5778f7b14f576274d593f8ce883d191a099682" +checksum = "ab70038c28ed37b97d8ed414b6429d343a8bbf44c9f79ec854f3a643029ba6d7" dependencies = [ "futures-core", "futures-sink", "js-sys", "pin-project-lite", - "thiserror 2.0.18", + "thiserror 1.0.69", "tracing", ] -[[package]] -name = "opentelemetry-http" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5683015d09e2df236ef005b17f6f196f0d5f6313c4fa43a7b6a53b52776e4331" -dependencies = [ - "async-trait", - "bytes", - "http", - "opentelemetry", - "reqwest 0.13.3", -] - [[package]] name = "opentelemetry-otlp" -version = "0.32.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9966929966d17620d7c316c643ba62631826e10021409357772d5eea84f62c35" +checksum = "91cf61a1868dacc576bf2b2a1c3e9ab150af7272909e80085c3173384fe11f76" dependencies = [ + "async-trait", + "futures-core", "http", "opentelemetry", - "opentelemetry-http", "opentelemetry-proto", "opentelemetry_sdk", - "prost", - "reqwest 0.13.3", - "thiserror 2.0.18", + "prost 0.13.5", + "thiserror 1.0.69", "tokio", "tonic", - "tonic-types", + "tracing", ] [[package]] name = "opentelemetry-proto" -version = "0.32.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56d658ba1faf63f7b9c492cfbe6e0ec365440a16132d3270c1065f7b33f1b638" +checksum = "a6e05acbfada5ec79023c85368af14abd0b307c015e9064d249b2a950ef459a6" dependencies = [ "opentelemetry", "opentelemetry_sdk", - "prost", + "prost 0.13.5", "tonic", - "tonic-prost", ] [[package]] name = "opentelemetry_sdk" -version = "0.32.1" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b59f80e1ac4d5ff7a2db8fb6c80badb7f0f3f858211fba08dd9aaec750894f9" +checksum = "231e9d6ceef9b0b2546ddf52335785ce41252bc7474ee8ba05bfad277be13ab8" dependencies = [ + "async-trait", "futures-channel", "futures-executor", "futures-util", + "glob", "opentelemetry", "percent-encoding", - "portable-atomic", - "rand 0.9.4", - "thiserror 2.0.18", + "rand 0.8.5", + "serde_json", + "thiserror 1.0.69", "tokio", "tokio-stream", + "tracing", +] + +[[package]] +name = "optd-core" +version = "0.18.0" +dependencies = [ + "anyhow", + "bitvec", + "itertools 0.14.0", + "pretty-xmlish", + "snafu 0.8.9", + "tokio", + "tracing", ] [[package]] @@ -5232,6 +5315,15 @@ dependencies = [ "num-traits", ] +[[package]] +name = "ordered-float" +version = "4.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" +dependencies = [ + "num-traits", +] + [[package]] name = "ordered-float" version = "5.3.0" @@ -5275,6 +5367,15 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "ownedbytes" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3a059efb063b8f425b948e042e6b9bd85edfe60e913630ed727b23e2dfcc558" +dependencies = [ + "stable_deref_trait", +] + [[package]] name = "ownedbytes" version = "0.9.0" @@ -5325,25 +5426,26 @@ dependencies = [ [[package]] name = "parquet" -version = "58.3.0" +version = "57.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dafa7d01085b62a47dd0c1829550a0a36710ea9c4fe358a05a85477cec8a908" +checksum = "6ee96b29972a257b855ff2341b37e61af5f12d6af1158b6dcdb5b31ea07bb3cb" dependencies = [ "ahash", "arrow-array", "arrow-buffer", + "arrow-cast", "arrow-data", "arrow-ipc", "arrow-schema", "arrow-select", - "base64", + "base64 0.22.1", "brotli", "bytes", "chrono", "flate2", "half", - "hashbrown 0.17.1", - "lz4_flex", + "hashbrown 0.16.1", + "lz4_flex 0.12.1", "num-bigint", "num-integer", "num-traits", @@ -5391,11 +5493,11 @@ checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" [[package]] name = "pbkdf2" -version = "0.13.0" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112d82ceb8c5bf524d9af484d4e4970c9fd5a0cc15ba14ad93dccd28873b0629" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ - "digest 0.11.3", + "digest", "hmac", ] @@ -5405,7 +5507,7 @@ version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" dependencies = [ - "base64", + "base64 0.22.1", "serde_core", ] @@ -5461,23 +5563,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89815c69d36021a140146f26659a81d6c2afa33d216d736dd4be5381a7362220" dependencies = [ "pest", - "sha2 0.10.9", + "sha2", ] [[package]] name = "petgraph" -version = "0.8.3" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" +checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" dependencies = [ "fixedbitset", - "hashbrown 0.15.5", "indexmap 2.14.0", - "serde", ] [[package]] -name = "phf" +name = "petgraph" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" +dependencies = [ + "fixedbitset", + "hashbrown 0.15.5", + "indexmap 2.14.0", + "serde", +] + +[[package]] +name = "phf" version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" @@ -5495,36 +5607,16 @@ dependencies = [ "phf_shared 0.12.1", ] -[[package]] -name = "phf" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" -dependencies = [ - "phf_shared 0.13.1", - "serde", -] - [[package]] name = "phf_codegen" version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" dependencies = [ - "phf_generator 0.11.3", + "phf_generator", "phf_shared 0.11.3", ] -[[package]] -name = "phf_codegen" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1" -dependencies = [ - "phf_generator 0.13.1", - "phf_shared 0.13.1", -] - [[package]] name = "phf_generator" version = "0.11.3" @@ -5532,17 +5624,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ "phf_shared 0.11.3", - "rand 0.8.6", -] - -[[package]] -name = "phf_generator" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" -dependencies = [ - "fastrand", - "phf_shared 0.13.1", + "rand 0.8.5", ] [[package]] @@ -5551,7 +5633,7 @@ version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" dependencies = [ - "phf_generator 0.11.3", + "phf_generator", "phf_shared 0.11.3", "proc-macro2", "quote", @@ -5576,29 +5658,20 @@ dependencies = [ "siphasher", ] -[[package]] -name = "phf_shared" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" -dependencies = [ - "siphasher", -] - [[package]] name = "pin-project" -version = "1.1.13" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2466b2336ed02bcdca6b294417127b90ec92038d1d5c4fbeac971a922e0e0924" +checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.13" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" +checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" dependencies = [ "proc-macro2", "quote", @@ -5652,7 +5725,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f977080932c87287147dca052951c3e2696f8759863f6b4e4c0c9ffe7a4cc8b" dependencies = [ "async-compression", - "base64", + "base64 0.22.1", "bytes", "futures-util", "headers", @@ -5664,7 +5737,7 @@ dependencies = [ "hyper-util", "mime", "mime_guess", - "nix", + "nix 0.30.1", "parking_lot", "percent-encoding", "pin-project-lite", @@ -5707,7 +5780,7 @@ dependencies = [ "concurrent-queue", "hermit-abi", "pin-project-lite", - "rustix", + "rustix 1.1.4", "windows-sys 0.61.2", ] @@ -5719,9 +5792,9 @@ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "portable-atomic-util" -version = "0.2.7" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" +checksum = "091397be61a01d4be58e7841595bd4bfedb15f1cd54977d79b8271e94ed799a3" dependencies = [ "portable-atomic", ] @@ -5741,12 +5814,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" -[[package]] -name = "ppmd-rust" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efca4c95a19a79d1c98f791f10aebd5c1363b473244630bb7dbde1dc98455a24" - [[package]] name = "ppv-lite86" version = "0.2.21" @@ -5756,6 +5823,12 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "pretty-xmlish" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96b8aab53732b7a9c5c39bb0e130f85671b48b188ef258c3b9f7f5da1877382a" + [[package]] name = "pretty_assertions" version = "1.4.1" @@ -5782,7 +5855,7 @@ version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit", + "toml_edit 0.25.11+spec-1.1.0", ] [[package]] @@ -5815,7 +5888,7 @@ checksum = "4b45fcc2344c680f5025fe57779faef368840d0bd1f42f216291f0dc4ace4744" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.11.1", + "bitflags", "num-traits", "rand 0.9.4", "rand_chacha 0.9.0", @@ -5828,15 +5901,25 @@ dependencies = [ [[package]] name = "proptest-derive" -version = "0.8.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c57924a81864dddafba92e1bf92f9bf82f97096c44489548a60e888e1547549b" +checksum = "095a99f75c69734802359b682be8daaf8980296731f6470434ea2c652af1dd30" dependencies = [ "proc-macro2", "quote", "syn 2.0.117", ] +[[package]] +name = "prost" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" +dependencies = [ + "bytes", + "prost-derive 0.13.5", +] + [[package]] name = "prost" version = "0.14.3" @@ -5844,7 +5927,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2ea70524a2f82d518bce41317d0fae74151505651af45faf1ffbd6fd33f0568" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.14.3", +] + +[[package]] +name = "prost-build" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" +dependencies = [ + "heck 0.5.0", + "itertools 0.14.0", + "log", + "multimap", + "once_cell", + "petgraph 0.7.1", + "prettyplease", + "prost 0.13.5", + "prost-types 0.13.5", + "regex", + "syn 2.0.117", + "tempfile", ] [[package]] @@ -5857,10 +5960,10 @@ dependencies = [ "itertools 0.14.0", "log", "multimap", - "petgraph", + "petgraph 0.8.3", "prettyplease", - "prost", - "prost-types", + "prost 0.14.3", + "prost-types 0.14.3", "regex", "syn 2.0.117", "tempfile", @@ -5868,9 +5971,9 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.14.3" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b" +checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ "anyhow", "itertools 0.14.0", @@ -5880,57 +5983,62 @@ dependencies = [ ] [[package]] -name = "prost-types" +name = "prost-derive" version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8991c4cbdb8bc5b11f0b074ffe286c30e523de90fee5ba8132f1399f23cb3dd7" +checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b" dependencies = [ - "prost", + "anyhow", + "itertools 0.14.0", + "proc-macro2", + "quote", + "syn 2.0.117", ] [[package]] -name = "ptr_meta" -version = "0.3.1" +name = "prost-types" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9a0cf95a1196af61d4f1cbdab967179516d9a4a4312af1f31948f8f6224a79" +checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" dependencies = [ - "ptr_meta_derive", + "prost 0.13.5", ] [[package]] -name = "ptr_meta_derive" -version = "0.3.1" +name = "prost-types" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" +checksum = "8991c4cbdb8bc5b11f0b074ffe286c30e523de90fee5ba8132f1399f23cb3dd7" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", + "prost 0.14.3", ] [[package]] name = "pyo3" -version = "0.28.3" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91fd8e38a3b50ed1167fb981cd6fd60147e091784c427b8f7183a7ee32c31c12" +checksum = "ab53c047fcd1a1d2a8820fe84f05d6be69e9526be40cb03b73f86b6b03e6d87d" dependencies = [ "chrono", "chrono-tz 0.10.4", "indexmap 2.14.0", + "indoc", "inventory", "libc", + "memoffset", "once_cell", "portable-atomic", "pyo3-build-config", "pyo3-ffi", "pyo3-macros", + "unindent", ] [[package]] name = "pyo3-arrow" -version = "0.17.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0360400036dda3db3d69102ef7e9646e4cd946c75a2d1d41fb8fd39879312636" +checksum = "36b9f03cb749b0326951ebb30e39eda2f32b0b9205dce67e947e65779b8faffc" dependencies = [ "arrow-array", "arrow-buffer", @@ -5949,18 +6057,18 @@ dependencies = [ [[package]] name = "pyo3-build-config" -version = "0.28.3" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e368e7ddfdeb98c9bca7f8383be1648fd84ab466bf2bc015e94008db6d35611e" +checksum = "b455933107de8642b4487ed26d912c2d899dec6114884214a0b3bb3be9261ea6" dependencies = [ "target-lexicon", ] [[package]] name = "pyo3-ffi" -version = "0.28.3" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f29e10af80b1f7ccaf7f69eace800a03ecd13e883acfacc1e5d0988605f651e" +checksum = "1c85c9cbfaddf651b1221594209aed57e9e5cff63c4d11d1feead529b872a089" dependencies = [ "libc", "pyo3-build-config", @@ -5968,9 +6076,9 @@ dependencies = [ [[package]] name = "pyo3-macros" -version = "0.28.3" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df6e520eff47c45997d2fc7dd8214b25dd1310918bbb2642156ef66a67f29813" +checksum = "0a5b10c9bf9888125d917fb4d2ca2d25c8df94c7ab5a52e13313a07e050a3b02" dependencies = [ "proc-macro2", "pyo3-macros-backend", @@ -5980,9 +6088,9 @@ dependencies = [ [[package]] name = "pyo3-macros-backend" -version = "0.28.3" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4cdc218d835738f81c2338f822078af45b4afdf8b2e33cbb5916f108b813acb" +checksum = "03b51720d314836e53327f5871d4c0cfb4fb37cc2c4a11cc71907a86342c40f9" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -5993,9 +6101,9 @@ dependencies = [ [[package]] name = "pythonize" -version = "0.28.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b79f670c9626c8b651c0581011b57b6ba6970bb69faf01a7c4c0cfc81c43f95" +checksum = "a3a8f29db331e28c332c63496cfcbb822aca3d7320bc08b655d7fd0c29c50ede" dependencies = [ "pyo3", "serde", @@ -6013,18 +6121,6 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" -[[package]] -name = "quick_cache" -version = "0.6.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1c821816e9b928e20e92ed59bb3ac4aab321d16ca2316871c9fe7ca739cd477" -dependencies = [ - "ahash", - "equivalent", - "hashbrown 0.16.1", - "parking_lot", -] - [[package]] name = "quinn" version = "0.11.9" @@ -6036,9 +6132,9 @@ dependencies = [ "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash", + "rustc-hash 2.1.2", "rustls", - "socket2", + "socket2 0.6.3", "thiserror 2.0.18", "tokio", "tracing", @@ -6051,13 +6147,12 @@ version = "0.11.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" dependencies = [ - "aws-lc-rs", "bytes", "getrandom 0.3.4", "lru-slab", "rand 0.9.4", "ring", - "rustc-hash", + "rustc-hash 2.1.2", "rustls", "rustls-pki-types", "slab", @@ -6076,7 +6171,7 @@ dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2", + "socket2 0.6.3", "tracing", "windows-sys 0.60.2", ] @@ -6109,19 +6204,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" [[package]] -name = "rancor" -version = "0.1.1" +name = "radix_trie" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a063ea72381527c2a0561da9c80000ef822bdd7c3241b1cc1b12100e3df081ee" +checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" dependencies = [ - "ptr_meta", + "endian-type", + "nibble_vec", ] [[package]] name = "rand" -version = "0.8.6" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha 0.3.1", @@ -6138,17 +6234,6 @@ dependencies = [ "rand_core 0.9.5", ] -[[package]] -name = "rand" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207" -dependencies = [ - "chacha20", - "getrandom 0.4.2", - "rand_core 0.10.1", -] - [[package]] name = "rand_chacha" version = "0.3.1" @@ -6188,10 +6273,14 @@ dependencies = [ ] [[package]] -name = "rand_core" -version = "0.10.1" +name = "rand_distr" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +dependencies = [ + "num-traits", + "rand 0.8.5", +] [[package]] name = "rand_distr" @@ -6253,10 +6342,11 @@ dependencies = [ "arrow-select", "async-openai", "async-trait", - "axum", + "axum 0.8.9", "bigdecimal", + "bincode 2.0.1", "bytemuck", - "bzip2", + "bzip2 0.4.4", "chrono", "crossbeam-channel", "csv", @@ -6273,14 +6363,15 @@ dependencies = [ "flate2", "futures-util", "glam", - "hashbrown 0.17.1", + "hashbrown 0.14.5", "heed", "indexmap 2.14.0", "indoc", "iter-enum", - "itertools 0.14.0", + "itertools 0.13.0", "kdam", "lancedb", + "memmap2", "minijinja", "minijinja-contrib", "moka", @@ -6290,33 +6381,38 @@ dependencies = [ "num-traits", "numpy", "once_cell", - "ordered-float 5.3.0", + "ordered-float 4.6.0", "ouroboros", "parking_lot", "parquet", + "pretty_assertions", "proptest", + "proptest-derive", + "prost 0.13.5", + "prost-build 0.13.5", + "prost-types 0.13.5", "pyo3", "pyo3-arrow", "pythonize", "quad-rand", - "quick_cache", "rand 0.9.4", - "rand_distr", + "rand_distr 0.5.1", + "raphtory", "raphtory-api", "raphtory-core", "raphtory-itertools", "raphtory-storage", "rayon", "regex", - "reqwest 0.13.3", - "roaring", - "rustc-hash", + "reqwest", + "roaring 0.10.12", + "rustc-hash 2.1.2", "serde", "serde_arrow", "serde_json", "streaming-stats", "strsim", - "tantivy", + "tantivy 0.22.1", "tempfile", "thiserror 2.0.18", "tikv-jemallocator", @@ -6342,7 +6438,7 @@ dependencies = [ "display-error-chain", "indexmap 2.14.0", "iter-enum", - "itertools 0.14.0", + "itertools 0.13.0", "lock_api", "minijinja", "num-traits", @@ -6353,7 +6449,7 @@ dependencies = [ "pyo3-arrow", "rand 0.9.4", "rayon", - "rustc-hash", + "rustc-hash 2.1.2", "serde", "serde_arrow", "serde_json", @@ -6386,7 +6482,7 @@ dependencies = [ "fake", "once_cell", "rand 0.9.4", - "rand_distr", + "rand_distr 0.5.1", "raphtory", "raphtory-api", "rayon", @@ -6408,15 +6504,19 @@ dependencies = [ "chrono", "dashmap", "either", + "hashbrown 0.14.5", "iter-enum", - "itertools 0.14.0", + "itertools 0.13.0", + "lock_api", + "once_cell", "ouroboros", "parking_lot", "proptest", "pyo3", "raphtory-api", + "rayon", "regex", - "rustc-hash", + "rustc-hash 2.1.2", "serde", "thiserror 2.0.18", ] @@ -6426,9 +6526,11 @@ name = "raphtory-graphql" version = "0.18.0" dependencies = [ "ahash", + "arrow-array", "async-graphql", "async-graphql-poem", - "base64", + "base64 0.22.1", + "base64-compat", "bigdecimal", "chrono", "clap", @@ -6436,30 +6538,31 @@ dependencies = [ "crossbeam-channel", "dynamic-graphql", "futures-util", - "itertools 0.14.0", + "itertools 0.13.0", "jsonwebtoken", "minijinja", + "moka", "once_cell", "opentelemetry", "opentelemetry-otlp", "opentelemetry_sdk", + "ordered-float 4.6.0", "parking_lot", "poem", "pretty_assertions", "pyo3", - "quick_cache", "raphtory", "raphtory-api", "raphtory-storage", "rayon", - "reqwest 0.13.3", + "reqwest", "rust-embed", - "rustc-hash", + "rustc-hash 2.1.2", "serde", "serde_json", "spki", - "strum 0.28.0", - "strum_macros 0.28.0", + "strum 0.27.2", + "strum_macros 0.27.2", "tempfile", "thiserror 2.0.18", "tokio", @@ -6476,7 +6579,7 @@ name = "raphtory-itertools" version = "0.18.0" dependencies = [ "criterion", - "itertools 0.14.0", + "itertools 0.13.0", "proptest", "rand 0.9.4", ] @@ -6485,6 +6588,7 @@ dependencies = [ name = "raphtory-pymodule" version = "0.18.0" dependencies = [ + "clam-core", "pyo3", "pyo3-build-config", "raphtory", @@ -6506,42 +6610,24 @@ dependencies = [ name = "raphtory-storage" version = "0.18.0" dependencies = [ + "arrow-array", + "arrow-schema", + "bigdecimal", "db4-graph", "db4-storage", "either", "iter-enum", - "itertools 0.14.0", + "itertools 0.13.0", + "num-traits", "parking_lot", + "proptest", "raphtory-api", "raphtory-api-macros", "raphtory-core", "rayon", - "thiserror 2.0.18", -] - -[[package]] -name = "raphtory-tests" -version = "0.18.0" -dependencies = [ - "ahash", - "arrow", - "bigdecimal", - "chrono", - "db4-storage", - "itertools 0.14.0", - "parquet", - "proptest", - "proptest-derive", - "rand 0.9.4", - "raphtory", - "raphtory-api", - "raphtory-storage", - "rayon", "serde", - "serde_json", "tempfile", - "tracing", - "zip", + "thiserror 2.0.18", ] [[package]] @@ -6598,7 +6684,7 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.11.1", + "bitflags", ] [[package]] @@ -6661,24 +6747,16 @@ version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" -[[package]] -name = "rend" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cadadef317c2f20755a64d7fdc48f9e7178ee6b0e1f7fce33fa60f1d68a276e6" -dependencies = [ - "bytecheck", -] - [[package]] name = "reqwest" version = "0.12.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" dependencies = [ - "base64", + "base64 0.22.1", "bytes", "encoding_rs", + "futures-channel", "futures-core", "futures-util", "h2", @@ -6705,7 +6783,7 @@ dependencies = [ "tokio", "tokio-rustls", "tokio-util", - "tower", + "tower 0.5.3", "tower-http", "tower-service", "url", @@ -6713,46 +6791,7 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", -] - -[[package]] -name = "reqwest" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62e0021ea2c22aed41653bc7e1419abb2c97e038ff2c33d0e1309e49a97deec0" -dependencies = [ - "base64", - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-rustls", - "hyper-util", - "js-sys", - "log", - "mime_guess", - "percent-encoding", - "pin-project-lite", - "quinn", - "rustls", - "rustls-pki-types", - "rustls-platform-verifier", - "serde", - "serde_json", - "sync_wrapper", - "tokio", - "tokio-rustls", - "tower", - "tower-http", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", + "webpki-roots 1.0.6", ] [[package]] @@ -6767,7 +6806,7 @@ dependencies = [ "mime", "nom 7.1.3", "pin-project-lite", - "reqwest 0.12.28", + "reqwest", "thiserror 1.0.69", ] @@ -6801,40 +6840,20 @@ dependencies = [ ] [[package]] -name = "rkyv" -version = "0.8.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73389e0c99e664f919275ab5b5b0471391fe9a8de61e1dff9b1eaf56a90f16e3" -dependencies = [ - "bytecheck", - "bytes", - "hashbrown 0.17.1", - "indexmap 2.14.0", - "munge", - "ptr_meta", - "rancor", - "rend", - "rkyv_derive", - "tinyvec", - "uuid", -] - -[[package]] -name = "rkyv_derive" -version = "0.8.16" +name = "roaring" +version = "0.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d2ed0b54125315fb36bd021e82d314d1c126548f871634b483f46b31d13cac6" +checksum = "19e8d2cfa184d94d0726d650a9f4a1be7f9b76ac9fdb954219878dc00c1c1e7b" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", + "bytemuck", + "byteorder", ] [[package]] name = "roaring" -version = "0.11.4" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dedc5658c6ecb3bdb5ef5f3295bb9253f42dcf3fd1402c03f6b1f7659c3c4a9" +checksum = "8ba9ce64a8f45d7fc86358410bb1a82e8c987504c0d4900e9141d69a9f26c885" dependencies = [ "bytemuck", "byteorder", @@ -6842,16 +6861,14 @@ dependencies = [ [[package]] name = "ron" -version = "0.12.1" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4147b952f3f819eca0e99527022f7d6a8d05f111aeb0a62960c74eb283bec8fc" +checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" dependencies = [ - "bitflags 2.11.1", - "once_cell", + "base64 0.21.7", + "bitflags", "serde", "serde_derive", - "typeid", - "unicode-ident", ] [[package]] @@ -6885,7 +6902,7 @@ version = "8.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5bcdef0be6fe7f6fa333b1073c949729274b05f123a0ad7efcb8efd878e5c3b1" dependencies = [ - "sha2 0.10.9", + "sha2", "walkdir", ] @@ -6894,7 +6911,7 @@ name = "rust-examples" version = "0.18.0" dependencies = [ "chrono", - "itertools 0.14.0", + "itertools 0.13.0", "raphtory", "regex", "serde", @@ -6903,9 +6920,9 @@ dependencies = [ [[package]] name = "rust-ini" -version = "0.21.3" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "796e8d2b6696392a43bea58116b667fb4c29727dc5abd27d6acf338bb4f688c7" +checksum = "3e0698206bcb8882bf2a9ecb4c1e7785db57ff052297085a6efd4fe42302068a" dependencies = [ "cfg-if", "ordered-multimap", @@ -6921,6 +6938,12 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + [[package]] name = "rustc-hash" version = "2.1.2" @@ -6936,26 +6959,38 @@ dependencies = [ "semver", ] +[[package]] +name = "rustix" +version = "0.38.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", +] + [[package]] name = "rustix" version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.11.1", + "bitflags", "errno", "libc", - "linux-raw-sys", + "linux-raw-sys 0.12.1", "windows-sys 0.61.2", ] [[package]] name = "rustls" -version = "0.23.40" +version = "0.23.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b" +checksum = "69f9466fb2c14ea04357e91413efb882e2a6d4a406e625449bc0a5d360d53a21" dependencies = [ - "aws-lc-rs", "once_cell", "ring", "rustls-pki-types", @@ -7000,48 +7035,20 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.14.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9" +checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" dependencies = [ "web-time", "zeroize", ] -[[package]] -name = "rustls-platform-verifier" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0" -dependencies = [ - "core-foundation 0.10.1", - "core-foundation-sys", - "jni", - "log", - "once_cell", - "rustls", - "rustls-native-certs 0.8.3", - "rustls-platform-verifier-android", - "rustls-webpki", - "security-framework 3.7.0", - "security-framework-sys", - "webpki-root-certs", - "windows-sys 0.61.2", -] - -[[package]] -name = "rustls-platform-verifier-android" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" - [[package]] name = "rustls-webpki" -version = "0.103.13" +version = "0.103.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" +checksum = "8279bb85272c9f10811ae6a6c547ff594d6a7f3c6c6b02ee9726d1d0dcfcdd06" dependencies = [ - "aws-lc-rs", "ring", "rustls-pki-types", "untrusted 0.9.0", @@ -7065,6 +7072,28 @@ dependencies = [ "wait-timeout", ] +[[package]] +name = "rustyline" +version = "13.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02a2d683a4ac90aeef5b1013933f6d977bd37d51ff3f4dad829d4931a7e6be86" +dependencies = [ + "bitflags", + "cfg-if", + "clipboard-win", + "fd-lock", + "home", + "libc", + "log", + "memchr", + "nix 0.27.1", + "radix_trie", + "unicode-segmentation", + "unicode-width 0.1.14", + "utf8parse", + "winapi", +] + [[package]] name = "ryu" version = "1.0.23" @@ -7141,7 +7170,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.11.1", + "bitflags", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -7154,7 +7183,7 @@ version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ - "bitflags 2.11.1", + "bitflags", "core-foundation 0.10.1", "core-foundation-sys", "libc", @@ -7193,23 +7222,11 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde-untagged" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" -dependencies = [ - "erased-serde", - "serde", - "serde_core", - "typeid", -] - [[package]] name = "serde_arrow" -version = "0.14.1" +version = "0.13.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26e4ac1bef72720318e2c67bd19b972d17084840f3188a585021828122c43c2c" +checksum = "038967a6dda16f5c6ca5b6e1afec9cd2361d39f0db681ca338ac5f0ccece6469" dependencies = [ "arrow-array", "arrow-schema", @@ -7242,9 +7259,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.150" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ "itoa", "memchr", @@ -7277,11 +7294,11 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "1.1.1" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" dependencies = [ - "serde_core", + "serde", ] [[package]] @@ -7298,12 +7315,11 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.20.0" +version = "3.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e72c1c2cb7b223fafb600a619537a871c2818583d619401b785e7c0b746ccde2" +checksum = "dd5414fad8e6907dbdd5bc441a50ae8d6e26151a03b1de04d89a5576de61d01f" dependencies = [ - "base64", - "bs58", + "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", @@ -7318,9 +7334,9 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.20.0" +version = "3.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b90c488738ecb4fb0262f41f43bc40efc5868d9fb744319ddf5f5317f417bfac" +checksum = "d3db8978e608f1fe7357e211969fd9abdcae80bac1ba7a3369bb7eb6b404eb65" dependencies = [ "darling 0.23.0", "proc-macro2", @@ -7328,19 +7344,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "serde_yaml_ng" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4db627b98b36d4203a7b458cf3573730f2bb591b28871d916dfa9efabfd41f" -dependencies = [ - "indexmap 2.14.0", - "itoa", - "ryu", - "serde", - "unsafe-libyaml", -] - [[package]] name = "sha1" version = "0.10.6" @@ -7349,18 +7352,7 @@ checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", "cpufeatures 0.2.17", - "digest 0.10.7", -] - -[[package]] -name = "sha1" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aacc4cc499359472b4abe1bf11d0b12e688af9a805fa5e3016f9a386dc2d0214" -dependencies = [ - "cfg-if", - "cpufeatures 0.3.0", - "digest 0.11.3", + "digest", ] [[package]] @@ -7371,18 +7363,7 @@ checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures 0.2.17", - "digest 0.10.7", -] - -[[package]] -name = "sha2" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" -dependencies = [ - "cfg-if", - "cpufeatures 0.3.0", - "digest 0.11.3", + "digest", ] [[package]] @@ -7434,22 +7415,18 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" -[[package]] -name = "simd_cesu8" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94f90157bb87cddf702797c5dadfa0be7d266cdf49e22da2fcaa32eff75b2c33" -dependencies = [ - "rustc_version", - "simdutf8", -] - [[package]] name = "simdutf8" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" +[[package]] +name = "similar" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" + [[package]] name = "simple_asn1" version = "0.6.4" @@ -7464,15 +7441,24 @@ dependencies = [ [[package]] name = "siphasher" -version = "1.0.3" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" +checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" [[package]] name = "sketches-ddsketch" -version = "0.4.0" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85636c14b73d81f541e525f585c0a2109e6744e1565b5c1668e31c70c10ed65c" +dependencies = [ + "serde", +] + +[[package]] +name = "sketches-ddsketch" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05e40b6cf54d988dc1a2223531b969c9a9e30906ad90ef64890c27b4bfbb46ea" +checksum = "0c6f73aeb92d671e0cc4dca167e59b2deb6387c375391bc99ee743f326994a2b" dependencies = [ "serde", ] @@ -7483,6 +7469,15 @@ version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" +[[package]] +name = "slotmap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdd58c3c93c3d278ca835519292445cb4b0d4dc59ccfdf7ceadaab3f8aeb4038" +dependencies = [ + "version_check", +] + [[package]] name = "smallvec" version = "1.15.1" @@ -7537,6 +7532,25 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" +[[package]] +name = "snb" +version = "0.17.0" +dependencies = [ + "chrono", + "flate2", + "raphtory", +] + +[[package]] +name = "socket2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + [[package]] name = "socket2" version = "0.6.3" @@ -7555,18 +7569,18 @@ checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] name = "spki" -version = "0.8.0" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d9efca8738c78ee9484207732f728b1ef517bbb1833d6fc0879ca898a522f6f" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" dependencies = [ "der", ] [[package]] name = "sqlparser" -version = "0.61.0" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf5ea8d4d7c808e1af1cbabebca9a2abe603bcefc22294c5b95018d53200cb7" +checksum = "4591acadbcf52f0af60eafbb2c003232b2b4cd8de5f0e9437cb8b1b59046cc0f" dependencies = [ "log", "sqlparser_derive", @@ -7574,9 +7588,9 @@ dependencies = [ [[package]] name = "sqlparser_derive" -version = "0.5.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6dd45d8fc1c79299bfbb7190e42ccbbdf6a5f52e4a6ad98d92357ea965bd289" +checksum = "da5fc6819faabb412da764b99d3b713bb55083c11e7e0c00144d386cd6a1939c" dependencies = [ "proc-macro2", "quote", @@ -7646,15 +7660,6 @@ dependencies = [ "strum_macros 0.27.2", ] -[[package]] -name = "strum" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" -dependencies = [ - "strum_macros 0.28.0", -] - [[package]] name = "strum_macros" version = "0.26.4" @@ -7680,18 +7685,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "strum_macros" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "subtle" version = "2.6.1" @@ -7749,99 +7742,187 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "tagptr" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" - +[[package]] +name = "tagptr" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" + +[[package]] +name = "tantivy" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96599ea6fccd844fc833fed21d2eecac2e6a7c1afd9e044057391d78b1feb141" +dependencies = [ + "aho-corasick", + "arc-swap", + "base64 0.22.1", + "bitpacking", + "byteorder", + "census", + "crc32fast", + "crossbeam-channel", + "downcast-rs 1.2.1", + "fastdivide", + "fnv", + "fs4", + "htmlescape", + "itertools 0.12.1", + "levenshtein_automata", + "log", + "lru", + "lz4_flex 0.11.6", + "measure_time 0.8.3", + "memmap2", + "num_cpus", + "once_cell", + "oneshot", + "rayon", + "regex", + "rust-stemmers", + "rustc-hash 1.1.0", + "serde", + "serde_json", + "sketches-ddsketch 0.2.2", + "smallvec", + "tantivy-bitpacker 0.6.0", + "tantivy-columnar 0.3.0", + "tantivy-common 0.7.0", + "tantivy-fst", + "tantivy-query-grammar 0.22.0", + "tantivy-stacker 0.3.0", + "tantivy-tokenizer-api 0.3.0", + "tempfile", + "thiserror 1.0.69", + "time", + "uuid", + "winapi", +] + [[package]] name = "tantivy" -version = "0.26.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edde6a10743fff00a4e1a8c9ef020bf5f3cbad301b7d2d39f2b07f123c4eac07" +checksum = "64a966cb0e76e311f09cf18507c9af192f15d34886ee43d7ba7c7e3803660c43" dependencies = [ "aho-corasick", "arc-swap", - "base64", + "base64 0.22.1", "bitpacking", "bon", "byteorder", "census", "crc32fast", "crossbeam-channel", - "datasketches", - "downcast-rs", + "downcast-rs 2.0.2", "fastdivide", "fnv", "fs4", "htmlescape", + "hyperloglogplus", "itertools 0.14.0", "levenshtein_automata", "log", "lru", - "lz4_flex", - "measure_time", + "lz4_flex 0.11.6", + "measure_time 0.9.0", "memmap2", "once_cell", "oneshot", "rayon", "regex", "rust-stemmers", - "rustc-hash", + "rustc-hash 2.1.2", "serde", "serde_json", - "sketches-ddsketch", + "sketches-ddsketch 0.3.1", "smallvec", - "tantivy-bitpacker", - "tantivy-columnar", - "tantivy-common", + "tantivy-bitpacker 0.8.0", + "tantivy-columnar 0.5.0", + "tantivy-common 0.9.0", "tantivy-fst", - "tantivy-query-grammar", - "tantivy-stacker", - "tantivy-tokenizer-api", + "tantivy-query-grammar 0.24.0", + "tantivy-stacker 0.5.0", + "tantivy-tokenizer-api 0.5.0", "tempfile", "thiserror 2.0.18", "time", - "typetag", "uuid", "winapi", ] [[package]] name = "tantivy-bitpacker" -version = "0.10.0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "284899c2325d6832203ac6ff5891b297fc5239c3dc754c5bc1977855b23c10df" +dependencies = [ + "bitpacking", +] + +[[package]] +name = "tantivy-bitpacker" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fed3d674429bcd2de5d0a6d1aa5495fed8afd9c5ecce993019caf7615f53fa4" +checksum = "1adc286a39e089ae9938935cd488d7d34f14502544a36607effd2239ff0e2494" dependencies = [ "bitpacking", ] [[package]] name = "tantivy-columnar" -version = "0.7.0" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12722224ffbe346c7fec3275c699e508fd0d4710e629e933d5736ec524a1f44e" +dependencies = [ + "downcast-rs 1.2.1", + "fastdivide", + "itertools 0.12.1", + "serde", + "tantivy-bitpacker 0.6.0", + "tantivy-common 0.7.0", + "tantivy-sstable 0.3.0", + "tantivy-stacker 0.3.0", +] + +[[package]] +name = "tantivy-columnar" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c57166f5bcfd478f370ab8445afb4678dce44801fa5ce5c451aaf8595583c5dc" +checksum = "6300428e0c104c4f7db6f95b466a6f5c1b9aece094ec57cdd365337908dc7344" dependencies = [ - "downcast-rs", + "downcast-rs 2.0.2", "fastdivide", "itertools 0.14.0", "serde", - "tantivy-bitpacker", - "tantivy-common", - "tantivy-sstable", - "tantivy-stacker", + "tantivy-bitpacker 0.8.0", + "tantivy-common 0.9.0", + "tantivy-sstable 0.5.0", + "tantivy-stacker 0.5.0", +] + +[[package]] +name = "tantivy-common" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8019e3cabcfd20a1380b491e13ff42f57bb38bf97c3d5fa5c07e50816e0621f4" +dependencies = [ + "async-trait", + "byteorder", + "ownedbytes 0.7.0", + "serde", + "time", ] [[package]] name = "tantivy-common" -version = "0.11.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbf10915aa75da3c3b0d58b58853d2e889efbaf32d4982a4c3715dde6bba23e5" +checksum = "e91b6ea6090ce03dc72c27d0619e77185d26cc3b20775966c346c6d4f7e99d7f" dependencies = [ "async-trait", "byteorder", - "ownedbytes", + "ownedbytes 0.9.0", "serde", "time", ] @@ -7859,46 +7940,86 @@ dependencies = [ [[package]] name = "tantivy-query-grammar" -version = "0.26.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfadb8526b6da90704feb293b0701a6aae62ea14983143344be2dc5ce30f1d82" +checksum = "847434d4af57b32e309f4ab1b4f1707a6c566656264caa427ff4285c4d9d0b82" +dependencies = [ + "nom 7.1.3", +] + +[[package]] +name = "tantivy-query-grammar" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e810cdeeebca57fc3f7bfec5f85fdbea9031b2ac9b990eb5ff49b371d52bbe6a" dependencies = [ - "fnv", "nom 7.1.3", - "ordered-float 5.3.0", "serde", "serde_json", ] [[package]] name = "tantivy-sstable" -version = "0.7.0" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c69578242e8e9fc989119f522ba5b49a38ac20f576fc778035b96cc94f41f98e" +dependencies = [ + "tantivy-bitpacker 0.6.0", + "tantivy-common 0.7.0", + "tantivy-fst", + "zstd", +] + +[[package]] +name = "tantivy-sstable" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a2cfc3ac5164cbadc28965ffb145a8f47582a60ae5897859ad8d4316596c606" +checksum = "709f22c08a4c90e1b36711c1c6cad5ae21b20b093e535b69b18783dd2cb99416" dependencies = [ "futures-util", "itertools 0.14.0", - "tantivy-bitpacker", - "tantivy-common", + "tantivy-bitpacker 0.8.0", + "tantivy-common 0.9.0", "tantivy-fst", "zstd", ] [[package]] name = "tantivy-stacker" -version = "0.7.0" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c56d6ff5591fc332739b3ce7035b57995a3ce29a93ffd6012660e0949c956ea8" +dependencies = [ + "murmurhash32", + "rand_distr 0.4.3", + "tantivy-common 0.7.0", +] + +[[package]] +name = "tantivy-stacker" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cbb051742da9d53ca9e8fff43a9b10e319338b24e2c0e15d0372df19ffeb951" +checksum = "2bcdebb267671311d1e8891fd9d1301803fdb8ad21ba22e0a30d0cab49ba59c1" dependencies = [ "murmurhash32", - "tantivy-common", + "rand_distr 0.4.3", + "tantivy-common 0.9.0", ] [[package]] name = "tantivy-tokenizer-api" -version = "0.7.0" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a0dcade25819a89cfe6f17d932c9cedff11989936bf6dd4f336d50392053b04" +dependencies = [ + "serde", +] + +[[package]] +name = "tantivy-tokenizer-api" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac258c2c6390673f2685813afeeafcb8c4e0ee7de8dd3fc46838dcc37263f98" +checksum = "dfa942fcee81e213e09715bbce8734ae2180070b97b33839a795ba1de201547d" dependencies = [ "serde", ] @@ -7924,52 +8045,51 @@ dependencies = [ "fastrand", "getrandom 0.4.2", "once_cell", - "rustix", + "rustix 1.1.4", "windows-sys 0.61.2", ] +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + [[package]] name = "terminal_size" version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "230a1b821ccbd75b185820a1f1ff7b14d21da1e442e22c0863ea5f08771a8874" dependencies = [ - "rustix", + "rustix 1.1.4", "windows-sys 0.61.2", ] [[package]] name = "test-log" -version = "0.2.20" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f46bf474f0a4afebf92f076d54fd5e63423d9438b8c278a3d2ccb0f47f7cdb3" +checksum = "37d53ac171c92a39e4769491c4b4dde7022c60042254b5fc044ae409d34a24d4" dependencies = [ - "env_logger", + "env_logger 0.11.10", "test-log-macros", "tracing-subscriber", ] [[package]] -name = "test-log-core" -version = "0.2.20" +name = "test-log-macros" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d4d41320b48bc4a211a9021678fcc0c99569b594ea31c93735b8e517102b4c" +checksum = "be35209fd0781c5401458ab66e4f98accf63553e8fae7425503e92fdd319783b" dependencies = [ "proc-macro2", "quote", "syn 2.0.117", ] -[[package]] -name = "test-log-macros" -version = "0.2.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9beb9249a81e430dffd42400a49019bcf548444f1968ff23080a625de0d4d320" -dependencies = [ - "syn 2.0.117", - "test-log-core", -] - [[package]] name = "thiserror" version = "1.0.69" @@ -8041,9 +8161,9 @@ dependencies = [ [[package]] name = "tikv-jemalloc-sys" -version = "0.7.1+5.3.1-0-g81034ce1f1373e37dc865038e1bc8eeecf559ce8" +version = "0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a2825c78386b4ae0314074867860ba9577875de945f05992c38815cbec327f0" +checksum = "cd8aa5b2ab86a2cefa406d889139c162cbb230092f7d1d7cbc1716405d852a3b" dependencies = [ "cc", "libc", @@ -8051,9 +8171,9 @@ dependencies = [ [[package]] name = "tikv-jemallocator" -version = "0.7.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "249f09e49ab1609436f34c776e84231bead18d6a955f119f939bdc1d847561bd" +checksum = "0359b4327f954e0567e69fb191cf1436617748813819c94b8cd4a431422d053a" dependencies = [ "libc", "tikv-jemalloc-sys", @@ -8067,7 +8187,6 @@ checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" dependencies = [ "deranged", "itoa", - "js-sys", "num-conv", "powerfmt", "serde_core", @@ -8138,9 +8257,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.52.3" +version = "1.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" +checksum = "a91135f59b1cbf38c91e73cf3386fca9bb77915c45ce2771460c9d92f0f3d776" dependencies = [ "bytes", "libc", @@ -8148,8 +8267,9 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.6.3", "tokio-macros", + "tracing", "windows-sys 0.61.2", ] @@ -8183,7 +8303,6 @@ dependencies = [ "futures-core", "pin-project-lite", "tokio", - "tokio-util", ] [[package]] @@ -8214,15 +8333,23 @@ dependencies = [ [[package]] name = "toml" -version = "1.1.2+spec-1.1.0" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ - "serde_core", + "serde", "serde_spanned", - "toml_datetime", - "toml_parser", - "winnow", + "toml_datetime 0.6.11", + "toml_edit 0.22.27", +] + +[[package]] +name = "toml_datetime" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +dependencies = [ + "serde", ] [[package]] @@ -8234,6 +8361,20 @@ dependencies = [ "serde_core", ] +[[package]] +name = "toml_edit" +version = "0.22.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +dependencies = [ + "indexmap 2.14.0", + "serde", + "serde_spanned", + "toml_datetime 0.6.11", + "toml_write", + "winnow 0.7.15", +] + [[package]] name = "toml_edit" version = "0.25.11+spec-1.1.0" @@ -8241,9 +8382,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" dependencies = [ "indexmap 2.14.0", - "toml_datetime", + "toml_datetime 1.1.1+spec-1.1.0", "toml_parser", - "winnow", + "winnow 1.0.1", ] [[package]] @@ -8252,18 +8393,27 @@ version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ - "winnow", + "winnow 1.0.1", ] +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + [[package]] name = "tonic" -version = "0.14.6" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac2a5518c70fa84342385732db33fb3f44bc4cc748936eb5833d2df34d6445ef" +checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" dependencies = [ + "async-stream", "async-trait", - "base64", + "axum 0.7.9", + "base64 0.22.1", "bytes", + "h2", "http", "http-body", "http-body-util", @@ -8272,35 +8422,34 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", - "sync_wrapper", + "prost 0.13.5", + "socket2 0.5.10", "tokio", "tokio-stream", - "tower", + "tower 0.4.13", "tower-layer", "tower-service", "tracing", ] [[package]] -name = "tonic-prost" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a55376a0bbaa4975a3f10d009ad763d8f4108f067c7c2e74f3001fb49778d309" -dependencies = [ - "bytes", - "prost", - "tonic", -] - -[[package]] -name = "tonic-types" -version = "0.14.6" +name = "tower" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73ab1b02061f83d519bba3caa167f88f261ef05720ab8ebc954ade70de3348e8" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ - "prost", - "prost-types", - "tonic", + "futures-core", + "futures-util", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand 0.8.5", + "slab", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", ] [[package]] @@ -8311,12 +8460,9 @@ checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" dependencies = [ "futures-core", "futures-util", - "indexmap 2.14.0", "pin-project-lite", - "slab", "sync_wrapper", "tokio", - "tokio-util", "tower-layer", "tower-service", "tracing", @@ -8324,25 +8470,25 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.11" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" +checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" dependencies = [ "async-compression", - "bitflags 2.11.1", + "bitflags", "bytes", "futures-core", "futures-util", "http", "http-body", "http-body-util", + "iri-string", "pin-project-lite", "tokio", "tokio-util", - "tower", + "tower 0.5.3", "tower-layer", "tower-service", - "url", ] [[package]] @@ -8403,12 +8549,14 @@ dependencies = [ [[package]] name = "tracing-opentelemetry" -version = "0.33.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adbc64cba7137545b8044cb1fe9814f7aacf3c6b5f9b45be8bb5db538befdb26" +checksum = "97a971f6058498b5c0f1affa23e7ea202057a7301dbff68e968b2d578bcbd053" dependencies = [ "js-sys", + "once_cell", "opentelemetry", + "opentelemetry_sdk", "smallvec", "tracing", "tracing-core", @@ -8435,6 +8583,27 @@ dependencies = [ "tracing-log", ] +[[package]] +name = "tracing-test" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19a4c448db514d4f24c5ddb9f73f2ee71bfb24c526cf0c570ba142d1119e0051" +dependencies = [ + "tracing-core", + "tracing-subscriber", + "tracing-test-macro", +] + +[[package]] +name = "tracing-test-macro" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad06847b7afb65c7866a36664b75c40b895e318cea4f71299f013fb22965329d" +dependencies = [ + "quote", + "syn 2.0.117", +] + [[package]] name = "try-lock" version = "0.2.5" @@ -8453,7 +8622,7 @@ dependencies = [ "httparse", "log", "rand 0.9.4", - "sha1 0.10.6", + "sha1", "thiserror 2.0.18", "utf-8", ] @@ -8467,47 +8636,11 @@ dependencies = [ "rand 0.9.4", ] -[[package]] -name = "typed-path" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" - -[[package]] -name = "typeid" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" - [[package]] name = "typenum" -version = "1.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" - -[[package]] -name = "typetag" -version = "0.2.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5a897b12c6c1151ad0b138b8db50252dc301f93bc3b027db05eec82aeed298c" -dependencies = [ - "erased-serde", - "inventory", - "once_cell", - "serde", - "typetag-impl", -] - -[[package]] -name = "typetag-impl" -version = "0.2.22" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf808357c6ed7e13ba0f3277ec8d8f21b2d501274895104263985330c726c1c5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "ucd-trie" @@ -8536,33 +8669,24 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" -[[package]] -name = "unicode-blocks" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b12e05d9e06373163a9bb6bb8c263c261b396643a99445fe6b9811fd376581b" - [[package]] name = "unicode-ident" version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" -[[package]] -name = "unicode-normalization" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8" -dependencies = [ - "tinyvec", -] - [[package]] name = "unicode-segmentation" version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + [[package]] name = "unicode-width" version = "0.2.2" @@ -8576,10 +8700,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] -name = "unsafe-libyaml" -version = "0.2.11" +name = "unindent" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" +checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3" [[package]] name = "untrusted" @@ -8593,6 +8717,12 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" +[[package]] +name = "unty" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" + [[package]] name = "url" version = "2.5.8" @@ -8631,9 +8761,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.23.1" +version = "1.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd74a9687298c6858e9b88ec8935ec45d22e8fd5e6394fa1bd4e99a87789c76" +checksum = "5ac8b6f42ead25368cf5b098aeb3dc8a1a2c05a3eee8a9a1a68c640edbfc79d9" dependencies = [ "getrandom 0.4.2", "js-sys", @@ -8653,6 +8783,12 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "virtue" +version = "0.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1" + [[package]] name = "wait-timeout" version = "0.2.1" @@ -8689,11 +8825,11 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.3+wasi-0.2.9" +version = "1.0.2+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" dependencies = [ - "wit-bindgen 0.57.1", + "wit-bindgen", ] [[package]] @@ -8702,14 +8838,14 @@ version = "0.4.0+wasi-0.3.0-rc-2026-01-06" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ - "wit-bindgen 0.51.0", + "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.121" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49ace1d07c165b0864824eee619580c4689389afa9dc9ed3a4c75040d82e6790" +checksum = "0bf938a0bacb0469e83c1e148908bd7d5a6010354cf4fb73279b7447422e3a89" dependencies = [ "cfg-if", "once_cell", @@ -8720,9 +8856,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.71" +version = "0.4.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96492d0d3ffba25305a7dc88720d250b1401d7edca02cc3bcd50633b424673b8" +checksum = "f371d383f2fb139252e0bfac3b81b265689bf45b6874af544ffa4c975ac1ebf8" dependencies = [ "js-sys", "wasm-bindgen", @@ -8730,9 +8866,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.121" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e68e6f4afd367a562002c05637acb8578ff2dea1943df76afb9e83d177c8578" +checksum = "eeff24f84126c0ec2db7a449f0c2ec963c6a49efe0698c4242929da037ca28ed" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -8740,9 +8876,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.121" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95a9ec35c64b2a7cb35d3fead40c4238d0940c86d107136999567a4703259f2" +checksum = "9d08065faf983b2b80a79fd87d8254c409281cf7de75fc4b773019824196c904" dependencies = [ "bumpalo", "proc-macro2", @@ -8753,9 +8889,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.121" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4e0100b01e9f0d03189a92b96772a1fb998639d981193d7dbab487302513441" +checksum = "5fd04d9e306f1907bd13c6361b5c6bfc7b3b3c095ed3f8a9246390f8dbdee129" dependencies = [ "unicode-ident", ] @@ -8801,7 +8937,7 @@ version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" dependencies = [ - "bitflags 2.11.1", + "bitflags", "hashbrown 0.15.5", "indexmap 2.14.0", "semver", @@ -8809,9 +8945,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.98" +version = "0.3.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b572dff8bcf38bad0fa19729c89bb5748b2b9b1d8be70cf90df697e3a8f32aa" +checksum = "4f2dfbb17949fa2088e5d39408c48368947b86f7834484e87b73de55bc14d97d" dependencies = [ "js-sys", "wasm-bindgen", @@ -8827,29 +8963,20 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki-root-certs" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31141ce3fc3e300ae89b78c0dd67f9708061d1d2eda54b8209346fd6be9a92c" -dependencies = [ - "rustls-pki-types", -] - [[package]] name = "webpki-roots" version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "webpki-roots 1.0.7", + "webpki-roots 1.0.6", ] [[package]] name = "webpki-roots" -version = "1.0.7" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52f5ee44c96cf55f1b349600768e3ece3a8f26010c05265ab73f945bb1a2eb9d" +checksum = "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed" dependencies = [ "rustls-pki-types", ] @@ -9117,27 +9244,30 @@ checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winnow" -version = "1.0.3" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" dependencies = [ "memchr", ] [[package]] -name = "wit-bindgen" -version = "0.51.0" +name = "winnow" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5" dependencies = [ - "wit-bindgen-rust-macro", + "memchr", ] [[package]] name = "wit-bindgen" -version = "0.57.1" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] [[package]] name = "wit-bindgen-core" @@ -9188,7 +9318,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" dependencies = [ "anyhow", - "bitflags 2.11.1", + "bitflags", "indexmap 2.14.0", "log", "serde", @@ -9239,11 +9369,20 @@ version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" +[[package]] +name = "xz2" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2" +dependencies = [ + "lzma-sys", +] + [[package]] name = "yaml-rust2" -version = "0.11.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "631a50d867fafb7093e709d75aaee9e0e0d5deb934021fcea25ac2fe09edc51e" +checksum = "8902160c4e6f2fb145dbe9d6760a75e3c9522d8bf796ed7047c85919ac7115f8" dependencies = [ "arraydeque", "encoding_rs", @@ -9301,9 +9440,9 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.8" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" +checksum = "69faa1f2a1ea75661980b013019ed6687ed0e83d069bc1114e2cc74c6c04c4df" dependencies = [ "zerofrom-derive", ] @@ -9375,26 +9514,29 @@ dependencies = [ [[package]] name = "zip" -version = "8.6.0" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b" +checksum = "fabe6324e908f85a1c52063ce7aa26b68dcb7eb6dbc83a2d148403c9bc3eba50" dependencies = [ "aes", - "bzip2", - "constant_time_eq", + "arbitrary", + "bzip2 0.5.2", + "constant_time_eq 0.3.1", "crc32fast", + "crossbeam-utils", "deflate64", + "displaydoc", "flate2", - "getrandom 0.4.2", + "getrandom 0.3.4", "hmac", "indexmap 2.14.0", - "lzma-rust2", + "lzma-rs", "memchr", "pbkdf2", - "ppmd-rust", - "sha1 0.11.0", + "sha1", + "thiserror 2.0.18", "time", - "typed-path", + "xz2", "zeroize", "zopfli", "zstd", From 11a7a88d6a2455291d6423a2c9502b858109eef7 Mon Sep 17 00:00:00 2001 From: Fabian Murariu Date: Mon, 11 May 2026 16:05:42 +0100 Subject: [PATCH 05/22] minor fixes --- .../src/db/api/view/internal/time_semantics/filtered_edge.rs | 1 - raphtory/src/parquet_encoder/mod.rs | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/raphtory/src/db/api/view/internal/time_semantics/filtered_edge.rs b/raphtory/src/db/api/view/internal/time_semantics/filtered_edge.rs index a97d4e4fa5..737ad7c4a5 100644 --- a/raphtory/src/db/api/view/internal/time_semantics/filtered_edge.rs +++ b/raphtory/src/db/api/view/internal/time_semantics/filtered_edge.rs @@ -334,7 +334,6 @@ impl<'a> FilteredEdgeStorageOps<'a> for EdgeEntryRef<'a> { ) -> impl Iterator + 'a { self.layer_ids_iter(layer_ids) .filter(move |layer_id| view.internal_filter_edge_layer(self, *layer_id)) - .map(|layer_id| layer_id) } fn filtered_additions_iter( diff --git a/raphtory/src/parquet_encoder/mod.rs b/raphtory/src/parquet_encoder/mod.rs index f07706b9b4..c93e20788e 100644 --- a/raphtory/src/parquet_encoder/mod.rs +++ b/raphtory/src/parquet_encoder/mod.rs @@ -93,6 +93,7 @@ pub(crate) fn run_encode_indexed< encode_fn: impl Fn(II, &G, &mut Decoder, &mut S) -> Result<(), GraphError> + Sync, ) -> Result<(), GraphError> { let schema = derive_schema(meta, g.id_type(), default_fields_fn)?; + let num_digits = 8; items.try_for_each(|(chunk, items)| { From be559881a47d36a986a324f6e789d0d681bfaba4 Mon Sep 17 00:00:00 2001 From: Fabian Murariu Date: Wed, 13 May 2026 12:41:28 +0000 Subject: [PATCH 06/22] add bulk writer to avoid calling atomics on every event --- .../src/pages/edge_page/bulk_writer.rs | 136 +++ db4-storage/src/pages/edge_page/mod.rs | 1 + db4-storage/src/pages/edge_page/writer.rs | 1 + db4-storage/src/pages/layer_counter.rs | 8 +- db4-storage/src/pages/locked/edges.rs | 7 +- db4-storage/src/pages/locked/nodes.rs | 7 +- .../src/pages/node_page/bulk_writer.rs | 145 +++ db4-storage/src/pages/node_page/mod.rs | 1 + db4-storage/src/pages/node_page/writer.rs | 39 +- raphtory/examples/snb_loader.rs | 967 ++++++++---------- raphtory/src/arrow_loader/df_loaders/edges.rs | 8 +- 11 files changed, 778 insertions(+), 542 deletions(-) create mode 100644 db4-storage/src/pages/edge_page/bulk_writer.rs create mode 100644 db4-storage/src/pages/node_page/bulk_writer.rs diff --git a/db4-storage/src/pages/edge_page/bulk_writer.rs b/db4-storage/src/pages/edge_page/bulk_writer.rs new file mode 100644 index 0000000000..575a7b22a5 --- /dev/null +++ b/db4-storage/src/pages/edge_page/bulk_writer.rs @@ -0,0 +1,136 @@ +use crate::{ + LocalPOS, api::edges::EdgeSegmentOps, pages::edge_page::writer::EdgeWriter, + segments::edge::segment::MemEdgeSegment, +}; +use raphtory_api::core::entities::{ + EID, LayerId, VID, + properties::{meta::STATIC_GRAPH_LAYER_ID, prop::AsPropRef}, +}; +use raphtory_core::storage::timeindex::{AsTime, EventTime}; +use std::ops::DerefMut; + +pub struct BulkEdgeWriter< + 'a, + MP: DerefMut + std::fmt::Debug, + ES: EdgeSegmentOps, +> { + ew: EdgeWriter<'a, MP, ES>, + layers: Vec, + earliest: EventTime, + latest: EventTime, +} + +impl<'a, MP: DerefMut + std::fmt::Debug, ES: EdgeSegmentOps> + From> for BulkEdgeWriter<'a, MP, ES> +{ + fn from(value: EdgeWriter<'a, MP, ES>) -> Self { + Self { + ew: value, + layers: vec![0], + earliest: EventTime::MAX, + latest: EventTime::MIN, + } + } +} + +impl<'a, MP: DerefMut + std::fmt::Debug, ES: EdgeSegmentOps> + BulkEdgeWriter<'a, MP, ES> +{ + pub fn bulk_add_edge( + &mut self, + t: EventTime, + edge_pos: LocalPOS, + src: VID, + dst: VID, + edge_exists: bool, + layer_id: LayerId, + c_props: impl IntoIterator, + t_props: impl IntoIterator, + ) { + if !edge_exists { + if self + .ew + .writer + .insert_static_edge_internal(edge_pos, src, dst, STATIC_GRAPH_LAYER_ID) + { + self.increment_layer_num_edges(STATIC_GRAPH_LAYER_ID); + } + } + + if self + .ew + .writer + .insert_edge_internal(t, edge_pos, src, dst, layer_id, t_props) + && !self.ew.page.immut_has_edge(edge_pos, layer_id) + { + self.increment_layer_num_edges(layer_id); + } + + self.update_time(t); + + self.ew + .writer + .update_const_properties(edge_pos, src, dst, layer_id, c_props); + } + + pub fn bulk_delete_edge( + &mut self, + t: EventTime, + edge_pos: LocalPOS, + src: VID, + dst: VID, + exists: bool, + layer_id: LayerId, + ) { + if !exists { + if self + .ew + .writer + .insert_static_edge_internal(edge_pos, src, dst, STATIC_GRAPH_LAYER_ID) + { + self.increment_layer_num_edges(STATIC_GRAPH_LAYER_ID); + } + } + + self.update_time(t); + if self + .ew + .writer + .delete_edge_internal(t, edge_pos, src, dst, layer_id) + && !self.ew.page.immut_has_edge(edge_pos, layer_id) + { + self.increment_layer_num_edges(layer_id); + } + } + + #[inline] + fn increment_layer_num_edges(&mut self, layer_id: LayerId) { + if self.layers.len() <= layer_id.0 { + self.layers.resize_with(layer_id.0 + 1, Default::default); + } + self.layers[layer_id.0] += 1; + } + + #[inline] + fn update_time(&mut self, t: EventTime) { + self.earliest = self.earliest.min(t); + self.latest = self.latest.max(t); + } + + #[inline(always)] + pub fn resolve_pos(&self, edge_id: EID) -> Option { + self.ew.resolve_pos(edge_id) + } +} + +impl<'a, MP: DerefMut + std::fmt::Debug, ES: EdgeSegmentOps> Drop + for BulkEdgeWriter<'a, MP, ES> +{ + fn drop(&mut self) { + for (layer_id, count) in self.layers.iter().enumerate() { + self.ew.graph_stats.increment_by(LayerId(layer_id), *count); + } + self.ew.graph_stats.update_time(self.earliest.t()); + self.ew.graph_stats.update_time(self.latest.t()); + } +} diff --git a/db4-storage/src/pages/edge_page/mod.rs b/db4-storage/src/pages/edge_page/mod.rs index d3baa81782..69fc99e0c2 100644 --- a/db4-storage/src/pages/edge_page/mod.rs +++ b/db4-storage/src/pages/edge_page/mod.rs @@ -1 +1,2 @@ pub mod writer; +pub mod bulk_writer; diff --git a/db4-storage/src/pages/edge_page/writer.rs b/db4-storage/src/pages/edge_page/writer.rs index 03c96cefce..d02a5f1242 100644 --- a/db4-storage/src/pages/edge_page/writer.rs +++ b/db4-storage/src/pages/edge_page/writer.rs @@ -177,6 +177,7 @@ impl<'a, MP: DerefMut + std::fmt::Debug, ES: EdgeSegmen self.page.segment_id() } + #[inline] fn increment_layer_num_edges(&self, layer_id: LayerId) { self.graph_stats.increment(layer_id); } diff --git a/db4-storage/src/pages/layer_counter.rs b/db4-storage/src/pages/layer_counter.rs index e94f8567b7..3342fdd14a 100644 --- a/db4-storage/src/pages/layer_counter.rs +++ b/db4-storage/src/pages/layer_counter.rs @@ -70,9 +70,15 @@ impl GraphStats { self.latest.get() } + #[inline(always)] pub fn increment(&self, layer_id: LayerId) -> usize { + self.increment_by(layer_id, 1) + } + + #[inline(always)] + pub fn increment_by(&self, layer_id: LayerId, count: usize) -> usize { let counter = self.get_or_create_layer(layer_id); - counter.fetch_add(1, std::sync::atomic::Ordering::Release) + counter.fetch_add(count, std::sync::atomic::Ordering::Release) } pub fn get(&self, layer_id: LayerId) -> usize { diff --git a/db4-storage/src/pages/locked/edges.rs b/db4-storage/src/pages/locked/edges.rs index 79f116ad4e..336eb8e72a 100644 --- a/db4-storage/src/pages/locked/edges.rs +++ b/db4-storage/src/pages/locked/edges.rs @@ -4,7 +4,7 @@ use crate::{ LocalPOS, api::edges::EdgeSegmentOps, error::StorageError, - pages::{edge_page::writer::EdgeWriter, layer_counter::GraphStats, resolve_pos}, + pages::{edge_page::{bulk_writer::BulkEdgeWriter, writer::EdgeWriter}, layer_counter::GraphStats, resolve_pos}, persist::strategy::PersistenceStrategy, segments::edge::segment::MemEdgeSegment, }; @@ -44,6 +44,11 @@ impl<'a, ES: EdgeSegmentOps> LockedEdgePage<'a, ES> { EdgeWriter::new(self.num_edges, self.page, self.lock.deref_mut()) } + #[inline(always)] + pub fn bulk_writer(&mut self) -> BulkEdgeWriter<'_, &mut MemEdgeSegment, ES> { + EdgeWriter::new(self.num_edges, self.page, self.lock.deref_mut()).into() + } + #[inline(always)] pub fn page_id(&self) -> usize { self.page_id diff --git a/db4-storage/src/pages/locked/nodes.rs b/db4-storage/src/pages/locked/nodes.rs index 0cb296d27e..3ec70f1f8f 100644 --- a/db4-storage/src/pages/locked/nodes.rs +++ b/db4-storage/src/pages/locked/nodes.rs @@ -2,7 +2,7 @@ use crate::{ LocalPOS, api::nodes::NodeSegmentOps, error::StorageError, - pages::{layer_counter::GraphStats, node_page::writer::NodeWriter, resolve_pos}, + pages::{layer_counter::GraphStats, node_page::{bulk_writer::BulkNodeWriter, writer::NodeWriter}, resolve_pos}, persist::strategy::PersistenceStrategy, segments::node::segment::MemNodeSegment, }; @@ -47,6 +47,11 @@ impl<'a, NS: NodeSegmentOps> LockedNodePage<'a, NS> { NodeWriter::new(self.page, self.layer_counter, self.lock.deref_mut()) } + #[inline(always)] + pub fn bulk_writer(&mut self) -> BulkNodeWriter<'_, &mut MemNodeSegment, NS> { + NodeWriter::new(self.page, self.layer_counter, self.lock.deref_mut()).into() + } + pub fn head(&mut self) -> &mut MemNodeSegment { self.lock.deref_mut() } diff --git a/db4-storage/src/pages/node_page/bulk_writer.rs b/db4-storage/src/pages/node_page/bulk_writer.rs new file mode 100644 index 0000000000..d5e0b41eac --- /dev/null +++ b/db4-storage/src/pages/node_page/bulk_writer.rs @@ -0,0 +1,145 @@ +use std::ops::DerefMut; + +use raphtory_api::core::entities::properties::{ + meta::{NODE_ID_IDX, STATIC_GRAPH_LAYER_ID}, + prop::Prop, +}; +use raphtory_core::{ + entities::{EID, ELID, GID, LayerId, VID}, + storage::timeindex::AsTime, +}; + +use crate::{ + LocalPOS, api::nodes::NodeSegmentOps, pages::node_page::writer::NodeWriter, + segments::node::segment::MemNodeSegment, +}; + +#[derive(Debug)] +pub struct BulkNodeWriter<'a, MP: DerefMut + 'a, NS: NodeSegmentOps> { + nw: NodeWriter<'a, MP, NS>, + layers: Vec, +} + +impl<'a, MP: DerefMut + 'a, NS: NodeSegmentOps> + From> for BulkNodeWriter<'a, MP, NS> +{ + fn from(value: NodeWriter<'a, MP, NS>) -> Self { + Self { + nw: value, + layers: Vec::new(), + } + } +} + +impl<'a, MP: DerefMut + 'a, NS: NodeSegmentOps> + BulkNodeWriter<'a, MP, NS> +{ + #[inline] + pub fn get_out_edge(&self, pos: LocalPOS, dst: VID, layer_id: LayerId) -> Option { + self.nw.get_out_edge(pos, dst, layer_id) + } + + #[inline(always)] + pub fn resolve_pos(&self, node_id: VID) -> Option { + self.nw.resolve_pos(node_id) + } + + #[inline(always)] + pub fn add_static_outbound_edge( + &mut self, + src_pos: LocalPOS, + dst: impl Into, + e_id: impl Into, + ) { + let e_id = e_id.into(); + self.nw.add_outbound_edge_inner::( + None, + src_pos, + dst, + e_id.with_layer(STATIC_GRAPH_LAYER_ID), + |layer_id| { + Self::update_layer_count(layer_id, &mut self.layers); + }, + ); + } + + pub fn add_static_inbound_edge( + &mut self, + dst_pos: LocalPOS, + src: impl Into, + e_id: impl Into, + ) { + let e_id = e_id.into(); + self.nw.add_inbound_edge_inner::( + None, + dst_pos, + src, + e_id.with_layer(STATIC_GRAPH_LAYER_ID), + |layer_id| { + Self::update_layer_count(layer_id, &mut self.layers); + }, + ); + } + + #[inline(always)] + pub fn add_outbound_edge( + &mut self, + t: Option, + src_pos: impl Into, + dst: impl Into, + e_id: impl Into, + ) { + self.nw + .add_outbound_edge_inner(t, src_pos, dst, e_id, |layer_id| { + Self::update_layer_count(layer_id, &mut self.layers); + }); + } + + pub fn add_inbound_edge( + &mut self, + t: Option, + dst_pos: impl Into, + src: impl Into, + e_id: impl Into, + ) { + self.nw + .add_inbound_edge_inner(t, dst_pos, src, e_id, |layer_id| { + Self::update_layer_count(layer_id, &mut self.layers); + }); + } + + fn update_layer_count(layer_id: LayerId, layers: &mut Vec) { + if layers.len() <= layer_id.0 { + layers.resize_with(layer_id.0 + 1, Default::default); + } + layers[layer_id.0] += 1; + } + + #[inline(always)] + pub fn update_timestamp(&mut self, t: T, pos: LocalPOS, e_id: ELID) { + self.nw.update_timestamp(t, pos, e_id); + } + + #[inline(always)] + pub fn store_node_id(&mut self, pos: LocalPOS, layer_id: LayerId, gid: GID) { + let gid = match gid { + GID::U64(id) => Prop::U64(id), + GID::Str(s) => Prop::str(s), + }; + let props = [(NODE_ID_IDX, gid)]; + self.nw + .update_c_props_inner(pos, layer_id, props, |layer_id| { + Self::update_layer_count(layer_id, &mut self.layers); + }); + } +} + +impl<'a, MP: DerefMut , ES: NodeSegmentOps> Drop + for BulkNodeWriter<'a, MP, ES> +{ + fn drop(&mut self) { + for (layer_id, count) in self.layers.iter().enumerate() { + self.nw.l_counter.increment_by(LayerId(layer_id), *count); + } + } +} diff --git a/db4-storage/src/pages/node_page/mod.rs b/db4-storage/src/pages/node_page/mod.rs index d3baa81782..69fc99e0c2 100644 --- a/db4-storage/src/pages/node_page/mod.rs +++ b/db4-storage/src/pages/node_page/mod.rs @@ -1 +1,2 @@ pub mod writer; +pub mod bulk_writer; diff --git a/db4-storage/src/pages/node_page/writer.rs b/db4-storage/src/pages/node_page/writer.rs index 4b07c8b634..70b8bb453d 100644 --- a/db4-storage/src/pages/node_page/writer.rs +++ b/db4-storage/src/pages/node_page/writer.rs @@ -58,7 +58,9 @@ impl<'a, MP: DerefMut + 'a, NS: NodeSegmentOps> NodeWri dst: impl Into, e_id: impl Into, ) { - self.add_outbound_edge_inner(t, src_pos, dst, e_id); + self.add_outbound_edge_inner(t, src_pos, dst, e_id, |layer_id| { + self.l_counter.increment(layer_id); + }); } pub fn add_static_outbound_edge( @@ -73,15 +75,19 @@ impl<'a, MP: DerefMut + 'a, NS: NodeSegmentOps> NodeWri src_pos, dst, e_id.with_layer(STATIC_GRAPH_LAYER_ID), + |layer_id| { + self.l_counter.increment(layer_id); + }, ); } - fn add_outbound_edge_inner( + pub(crate) fn add_outbound_edge_inner( &mut self, t: Option, src_pos: impl Into, dst: impl Into, e_id: impl Into, + mut layer_counter: impl FnMut(LayerId) -> (), ) { let src_pos = src_pos.into(); let dst = dst.into(); @@ -95,7 +101,8 @@ impl<'a, MP: DerefMut + 'a, NS: NodeSegmentOps> NodeWri self.mut_segment.increment_est_size(add); if is_new_node && !self.page.has_node(src_pos, layer_id) { - self.l_counter.increment(layer_id); + // self.l_counter.increment(layer_id); + layer_counter(layer_id); } } @@ -106,7 +113,9 @@ impl<'a, MP: DerefMut + 'a, NS: NodeSegmentOps> NodeWri src: impl Into, e_id: impl Into, ) { - self.add_inbound_edge_inner(t, dst_pos, src, e_id); + self.add_inbound_edge_inner(t, dst_pos, src, e_id, |layer| { + self.l_counter.increment(layer); + }); } pub fn add_static_inbound_edge( @@ -121,15 +130,19 @@ impl<'a, MP: DerefMut + 'a, NS: NodeSegmentOps> NodeWri dst_pos, src, e_id.with_layer(STATIC_GRAPH_LAYER_ID), + |layer| { + self.l_counter.increment(layer); + }, ); } - fn add_inbound_edge_inner( + pub(crate) fn add_inbound_edge_inner( &mut self, t: Option, dst_pos: impl Into, src: impl Into, e_id: impl Into, + mut layer_counter: impl FnMut(LayerId) -> (), ) { let e_id = e_id.into(); let src = src.into(); @@ -143,7 +156,7 @@ impl<'a, MP: DerefMut + 'a, NS: NodeSegmentOps> NodeWri self.mut_segment.increment_est_size(add); if is_new_node && !self.page.has_node(dst_pos, layer) { - self.l_counter.increment(layer); + layer_counter(layer); } } @@ -177,11 +190,23 @@ impl<'a, MP: DerefMut + 'a, NS: NodeSegmentOps> NodeWri pos: LocalPOS, layer_id: LayerId, props: impl IntoIterator, + ) { + self.update_c_props_inner(pos, layer_id, props, |layer_id| { + self.l_counter.increment(layer_id); + }); + } + + pub(crate) fn update_c_props_inner( + &mut self, + pos: LocalPOS, + layer_id: LayerId, + props: impl IntoIterator, + mut layer_counter: impl FnMut(LayerId) -> (), ) { let (is_new_node, add) = self.mut_segment.update_metadata(pos, layer_id, props); self.mut_segment.increment_est_size(add); if is_new_node && !self.page.has_node(pos, layer_id) { - self.l_counter.increment(layer_id); + layer_counter(layer_id); } } diff --git a/raphtory/examples/snb_loader.rs b/raphtory/examples/snb_loader.rs index c528fbff59..b8ca0c0c10 100644 --- a/raphtory/examples/snb_loader.rs +++ b/raphtory/examples/snb_loader.rs @@ -1,9 +1,15 @@ #[cfg(feature = "io")] use raphtory::io::parquet_loaders::{load_edges_from_parquet, load_nodes_from_parquet}; +#[cfg(feature = "io")] use raphtory::{arrow_loader::df_loaders::edges::ColumnNames, errors::GraphError, prelude::*}; +use serde::Deserialize; +#[cfg(feature = "io")] use std::path::{Path, PathBuf}; +#[cfg(feature = "io")] +use storage::persist::node; /// Construct the path to a named Parquet file inside `parquet_dir`. +#[cfg(feature = "io")] fn pq(parquet_dir: &Path, name: &str) -> PathBuf { parquet_dir.join(format!("{}.parquet", name)) } @@ -15,541 +21,435 @@ use tikv_jemallocator::Jemalloc; #[global_allocator] static GLOBAL: Jemalloc = Jemalloc; -/// Load SNB data from Parquet files into a Raphtory Graph. #[cfg(feature = "io")] -fn load_snb_graph(parquet_dir: &Path, graph: &Graph) -> Result<(), GraphError> { - // ── Static Nodes ────────────────────────────────────────────────────── - - // println!("Loading Places..."); - // load_nodes_from_parquet( - // graph, - // &pq(parquet_dir, "place"), - // "_time", - // None, - // "_node_id", - // None, - // Some("type"), - // &["name", "url", "id"], - // &[], - // None, - // None, - // true, - // None, - // )?; - // println!(" ✓ places"); - - // let fp = pq(parquet_dir, "place_IS_PART_OF_place"); - // if fp.exists() { - // load_edges_from_parquet( - // graph, - // &fp, - // ColumnNames::new("_time", None, "START_ID", "END_ID", None), - // true, - // &[], - // &[], - // None, - // Some("IS_PART_OF"), - // None, - // None, - // )?; - // graph.flush()?; - // println!(" ✓ IS_PART_OF edges"); - // } - - // println!("Loading Organisations..."); - // load_nodes_from_parquet( - // graph, - // &pq(parquet_dir, "organisation"), - // "_time", - // None, - // "_node_id", - // None, - // Some("type"), - // &["name", "url", "id"], - // &[], - // None, - // None, - // true, - // None, - // )?; - // println!(" ✓ organisations"); - - // load_edges_from_parquet( - // graph, - // &pq(parquet_dir, "organisation_IS_LOCATED_IN_place"), - // ColumnNames::new("_time", None, "START_ID", "END_ID", None), - // true, - // &[], - // &[], - // None, - // Some("IS_LOCATED_IN"), - // None, - // None, - // )?; - // graph.flush()?; - // println!(" ✓ Organisation IS_LOCATED_IN edges"); - - // println!("Loading Tags..."); - // load_nodes_from_parquet( - // graph, - // &pq(parquet_dir, "tag"), - // "_time", - // None, - // "_node_id", - // Some("Tag"), - // None, - // &["name", "url", "id"], - // &[], - // None, - // None, - // true, - // None, - // )?; - // println!(" ✓ tags"); - - // let fp = pq(parquet_dir, "tagclass"); - // if fp.exists() { - // println!("Loading TagClasses..."); - // load_nodes_from_parquet( - // graph, - // &fp, - // "_time", - // None, - // "_node_id", - // Some("TagClass"), - // None, - // &["name", "url", "id"], - // &[], - // None, - // None, - // true, - // None, - // )?; - // println!(" ✓ tag classes"); - // } - - // let fp = pq(parquet_dir, "tag_HAS_TYPE_tagclass"); - // if fp.exists() { - // load_edges_from_parquet( - // graph, - // &fp, - // ColumnNames::new("_time", None, "START_ID", "END_ID", None), - // true, - // &[], - // &[], - // None, - // Some("HAS_TYPE"), - // None, - // None, - // )?; - // graph.flush()?; - // println!(" ✓ HAS_TYPE edges"); - // } - - // let fp = pq(parquet_dir, "tagclass_IS_SUBCLASS_OF_tagclass"); - // if fp.exists() { - // load_edges_from_parquet( - // graph, - // &fp, - // ColumnNames::new("_time", None, "START_ID", "END_ID", None), - // true, - // &[], - // &[], - // None, - // Some("IS_SUBCLASS_OF"), - // None, - // None, - // )?; - // graph.flush()?; - // println!(" ✓ IS_SUBCLASS_OF edges"); - // } - - // // ── Dynamic Nodes ───────────────────────────────────────────────────── - - // println!("Loading Persons..."); - // load_nodes_from_parquet( - // graph, - // &pq(parquet_dir, "person"), - // "creationDate", - // None, - // "_node_id", - // Some("Person"), - // None, - // &[ - // "firstName", - // "lastName", - // "gender", - // "birthday", - // "locationIP", - // "browserUsed", - // "language", - // "email", - // "id", - // "creationDate", - // ], - // &[], - // None, - // None, - // true, - // None, - // )?; - // println!(" ✓ persons"); - - // load_edges_from_parquet( - // graph, - // &pq(parquet_dir, "person_IS_LOCATED_IN_place"), - // ColumnNames::new("_time", None, "START_ID", "END_ID", None), - // true, - // &[], - // &[], - // None, - // Some("IS_LOCATED_IN"), - // None, - // None, - // )?; - // graph.flush()?; - - // println!("Loading Forums..."); - // load_nodes_from_parquet( - // graph, - // &pq(parquet_dir, "forum"), - // "creationDate", - // None, - // "_node_id", - // Some("Forum"), - // None, - // &["title", "id", "creationDate"], - // &[], - // None, - // None, - // true, - // None, - // )?; - // println!(" ✓ forums"); - - // load_edges_from_parquet( - // graph, - // &pq(parquet_dir, "forum_HAS_MODERATOR_person"), - // ColumnNames::new("_time", None, "START_ID", "END_ID", None), - // true, - // &[], - // &[], - // None, - // Some("HAS_MODERATOR"), - // None, - // None, - // )?; - // graph.flush()?; - - // println!("Loading Posts..."); - // load_nodes_from_parquet( - // graph, - // &pq(parquet_dir, "post"), - // "creationDate", - // None, - // "_node_id", - // Some("Post"), - // None, - // &[ - // "imageFile", - // "locationIP", - // "browserUsed", - // "language", - // "content", - // "length", - // "id", - // "creationDate", - // ], - // &[], - // None, - // None, - // true, - // None, - // )?; - // println!(" ✓ posts"); +struct NodeParquetInput { + path: PathBuf, + time_col: String, + id_col: String, + node_type: Option, + node_type_col: Option, + property_cols: Vec, +} - // load_edges_from_parquet( - // graph, - // &pq(parquet_dir, "post_HAS_CREATOR_person"), - // ColumnNames::new("_time", None, "START_ID", "END_ID", None), - // true, - // &[], - // &[], - // None, - // Some("HAS_CREATOR"), - // None, - // None, - // )?; - // graph.flush()?; +#[cfg(feature = "io")] +impl NodeParquetInput { + fn new<'a>( + path: impl AsRef, + time_col: &str, + id_col: &str, + node_type: Option<&str>, + node_type_col: Option<&str>, + property_cols: Vec<&str>, + ) -> NodeParquetInput { + NodeParquetInput { + path: path.as_ref().into(), + time_col: time_col.into(), + id_col: id_col.into(), + node_type: node_type.map(Into::into), + node_type_col: node_type_col.map(Into::into), + property_cols: property_cols.into_iter().map(|s| s.into()).collect(), + } + } + + fn path_as_string(&self) -> &str { + self.path.iter().last().and_then(|p| p.to_str()).unwrap() + } +} +#[cfg(feature = "io")] +struct EdgeParquetInput { + path: PathBuf, + time_col: String, + src_col: String, + dst_col: String, + layer: Option, + property_cols: Vec, +} - // load_edges_from_parquet( - // graph, - // &pq(parquet_dir, "post_IS_LOCATED_IN_place"), - // ColumnNames::new("_time", None, "START_ID", "END_ID", None), - // true, - // &[], - // &[], - // None, - // Some("IS_LOCATED_IN"), - // None, - // None, - // )?; - // graph.flush()?; +#[cfg(feature = "io")] +impl EdgeParquetInput { + fn new( + path: impl AsRef, + time_col: &str, + src_col: &str, + dst_col: &str, + layer: Option<&str>, + property_cols: Vec<&str>, + ) -> EdgeParquetInput { + EdgeParquetInput { + path: path.as_ref().into(), + time_col: time_col.into(), + src_col: src_col.into(), + dst_col: dst_col.into(), + layer: layer.map(Into::into), + property_cols: property_cols.into_iter().map(Into::into).collect(), + } + } + + fn path_as_string(&self) -> &str { + self.path.iter().last().and_then(|p| p.to_str()).unwrap() + } +} - // load_edges_from_parquet( - // graph, - // &pq(parquet_dir, "forum_CONTAINER_OF_post"), - // ColumnNames::new("_time", None, "START_ID", "END_ID", None), - // true, - // &[], - // &[], - // None, - // Some("CONTAINER_OF"), - // None, - // None, - // )?; - // graph.flush()?; +#[cfg(feature = "io")] +fn load_snb_graph_v2( + nodes: impl IntoIterator, + edges: impl IntoIterator, + graph: &Graph, +) -> Result<(), GraphError> { + for node in nodes { + println!("Loading nodes from Parquet file with time column '{}', id column '{}', label column '{:?}', and property columns {:?}...", node.time_col, node.id_col, node.node_type, node.property_cols); + load_nodes_from_parquet( + graph, + &node.path, + &node.time_col, + None, + &node.id_col, + node.node_type.as_deref(), + node.node_type_col.as_deref(), + &node + .property_cols + .iter() + .map(|s| s.as_ref()) + .collect::>(), + &[], + None, + None, + None, + None, + true, + None, + )?; + println!( + " ✓ Finished loading nodes from Parquet file with id column '{}'", + node.id_col + ); + } + + for edge in edges { + println!("Loading edges from Parquet file with time column '{}', src column '{}', dst column '{}', label column '{:?}', and property columns {:?}...", edge.time_col, edge.src_col, edge.dst_col, edge.layer, edge.property_cols); + load_edges_from_parquet( + graph, + &edge.path, + ColumnNames::new(&edge.time_col, None, &edge.src_col, &edge.dst_col, None), + true, + &edge + .property_cols + .iter() + .map(|s| s.as_ref()) + .collect::>(), + &[], + None, + edge.layer.as_deref(), + None, + None, + )?; + println!( + " ✓ Finished loading edges from Parquet file with src column '{}'", + edge.src_col + ); + } + Ok(()) +} - println!("Loading Comments..."); - load_nodes_from_parquet( - graph, - &pq(parquet_dir, "comment"), - "creationDate", - None, - "_node_id", - Some("Comment"), - None, - &[ - "locationIP", - "browserUsed", - "content", - "length", - "id", +/// Load SNB data from Parquet files into a Raphtory Graph. +#[cfg(feature = "io")] +fn load_snb_graph( + parquet_dir: &Path, + filter: Option, + graph: &Graph, +) -> Result<(), GraphError> { + let node_inputs = [ + NodeParquetInput::new( + pq(parquet_dir, "place"), + "_time", + "_node_id", + None, + Some("type"), + vec!["name", "url", "id"], + ), + NodeParquetInput::new( + pq(parquet_dir, "organisation"), + "_time", + "_node_id", + None, + Some("type"), + vec!["name", "url", "id"], + ), + NodeParquetInput::new( + pq(parquet_dir, "tag"), + "_time", + "_node_id", + Some("Tag"), + None, + vec!["name", "url", "id"], + ), + NodeParquetInput::new( + pq(parquet_dir, "tagclass"), + "_time", + "_node_id", + Some("TagClass"), + None, + vec!["name", "url", "id"], + ), + NodeParquetInput::new( + pq(parquet_dir, "person"), "creationDate", - ], - &[], - None, - None, - None, - None, - None, - true, - None, - )?; - println!(" ✓ comments"); - // graph.flush()?; - - load_edges_from_parquet( - graph, - &pq(parquet_dir, "comment_HAS_CREATOR_person"), - ColumnNames::new("_time", None, "START_ID", "END_ID", None), - true, - &[], - &[], - None, - Some("HAS_CREATOR"), - None, - None, - )?; - // graph.flush()?; - - load_edges_from_parquet( - graph, - &pq(parquet_dir, "comment_IS_LOCATED_IN_place"), - ColumnNames::new("_time", None, "START_ID", "END_ID", None), - true, - &[], - &[], - None, - Some("IS_LOCATED_IN"), - None, - None, - )?; - // graph.flush()?; - - load_edges_from_parquet( - graph, - &pq(parquet_dir, "comment_REPLY_OF_post"), - ColumnNames::new("_time", None, "START_ID", "END_ID", None), - true, - &[], - &[], - None, - Some("REPLY_OF"), - None, - None, - )?; - - load_edges_from_parquet( - graph, - &pq(parquet_dir, "comment_REPLY_OF_comment"), - ColumnNames::new("_time", None, "START_ID", "END_ID", None), - true, - &[], - &[], - None, - Some("REPLY_OF"), - None, - None, - )?; - // graph.flush()?; - - // ── Edge-only relationships ─────────────────────────────────────────── - - println!("Loading KNOWS edges..."); - load_edges_from_parquet( - graph, - &pq(parquet_dir, "person_KNOWS_person"), - ColumnNames::new("creationDate", None, "START_ID", "END_ID", None), - true, - &["creationDate"], - &[], - None, - Some("KNOWS"), - None, - None, - )?; - graph.flush()?; - println!(" ✓ KNOWS edges"); - - println!("Loading LIKES edges..."); - load_edges_from_parquet( - graph, - &pq(parquet_dir, "person_LIKES_post"), - ColumnNames::new("creationDate", None, "START_ID", "END_ID", None), - true, - &["creationDate"], - &[], - None, - Some("LIKES"), - None, - None, - )?; - graph.flush()?; - println!(" ✓ LIKES (Post) edges"); - - load_edges_from_parquet( - graph, - &pq(parquet_dir, "person_LIKES_comment"), - ColumnNames::new("creationDate", None, "START_ID", "END_ID", None), - true, - &["creationDate"], - &[], - None, - Some("LIKES"), - None, - None, - )?; - graph.flush()?; - println!(" ✓ LIKES (Comment) edges"); - - println!("Loading HAS_MEMBER edges..."); - load_edges_from_parquet( - graph, - &pq(parquet_dir, "forum_HAS_MEMBER_person"), - ColumnNames::new("joinDate", None, "START_ID", "END_ID", None), - true, - &["joinDate"], - &[], - None, - Some("HAS_MEMBER"), - None, - None, - )?; - graph.flush()?; - println!(" ✓ HAS_MEMBER edges"); - - println!("Loading STUDY_AT edges..."); - load_edges_from_parquet( - graph, - &pq(parquet_dir, "person_STUDY_AT_organisation"), - ColumnNames::new("_time", None, "START_ID", "END_ID", None), - true, - &["classYear"], - &[], - None, - Some("STUDY_AT"), - None, - None, - )?; - graph.flush()?; - println!(" ✓ STUDY_AT edges"); - - println!("Loading WORK_AT edges..."); - load_edges_from_parquet( - graph, - &pq(parquet_dir, "person_WORK_AT_organisation"), - ColumnNames::new("_time", None, "START_ID", "END_ID", None), - true, - &["workFrom"], - &[], - None, - Some("WORK_AT"), - None, - None, - )?; - graph.flush()?; - println!(" ✓ WORK_AT edges"); - - println!("Loading HAS_TAG edges..."); - load_edges_from_parquet( - graph, - &pq(parquet_dir, "post_HAS_TAG_tag"), - ColumnNames::new("_time", None, "START_ID", "END_ID", None), - true, - &[], - &[], - None, - Some("HAS_TAG"), - None, - None, - )?; - graph.flush()?; - - load_edges_from_parquet( - graph, - &pq(parquet_dir, "comment_HAS_TAG_tag"), - ColumnNames::new("_time", None, "START_ID", "END_ID", None), - true, - &[], - &[], - None, - Some("HAS_TAG"), - None, - None, - )?; - graph.flush()?; + "_node_id", + Some("Person"), + None, + vec![ + "firstName", + "lastName", + "gender", + "birthday", + "locationIP", + "browserUsed", + "language", + "email", + "id", + "creationDate", + ], + ), + NodeParquetInput::new( + pq(parquet_dir, "forum"), + "creationDate", + "_node_id", + Some("Forum"), + None, + vec!["title", "id", "creationDate"], + ), + NodeParquetInput::new( + pq(parquet_dir, "post"), + "creationDate", + "_node_id", + Some("Post"), + None, + vec![ + "imageFile", + "locationIP", + "browserUsed", + "language", + "content", + "length", + "id", + "creationDate", + ], + ), + NodeParquetInput::new( + pq(parquet_dir, "comment"), + "creationDate", + "_node_id", + Some("Comment"), + None, + vec![ + "locationIP", + "browserUsed", + "content", + "length", + "id", + "creationDate", + ], + ), + ]; + + let edge_inputs = [ + EdgeParquetInput::new( + pq(parquet_dir, "place_IS_PART_OF_place"), + "_time", + "START_ID", + "END_ID", + Some("IS_PART_OF"), + vec![], + ), + EdgeParquetInput::new( + pq(parquet_dir, "organisation_IS_LOCATED_IN_place"), + "_time", + "START_ID", + "END_ID", + Some("IS_LOCATED_IN"), + vec![], + ), + EdgeParquetInput::new( + pq(parquet_dir, "person_IS_LOCATED_IN_place"), + "_time", + "START_ID", + "END_ID", + Some("IS_LOCATED_IN"), + vec![], + ), + EdgeParquetInput::new( + pq(parquet_dir, "post_IS_LOCATED_IN_place"), + "_time", + "START_ID", + "END_ID", + Some("IS_LOCATED_IN"), + vec![], + ), + EdgeParquetInput::new( + pq(parquet_dir, "forum_HAS_MODERATOR_person"), + "_time", + "START_ID", + "END_ID", + Some("HAS_MODERATOR"), + vec![], + ), + EdgeParquetInput::new( + pq(parquet_dir, "post_HAS_CREATOR_person"), + "_time", + "START_ID", + "END_ID", + Some("HAS_CREATOR"), + vec![], + ), + EdgeParquetInput::new( + pq(parquet_dir, "comment_HAS_CREATOR_person"), + "_time", + "START_ID", + "END_ID", + Some("HAS_CREATOR"), + vec![], + ), + EdgeParquetInput::new( + pq(parquet_dir, "forum_CONTAINER_OF_post"), + "_time", + "START_ID", + "END_ID", + Some("CONTAINER_OF"), + vec![], + ), + EdgeParquetInput::new( + pq(parquet_dir, "comment_REPLY_OF_post"), + "_time", + "START_ID", + "END_ID", + Some("REPLY_OF"), + vec![], + ), + EdgeParquetInput::new( + pq(parquet_dir, "comment_REPLY_OF_comment"), + "_time", + "START_ID", + "END_ID", + Some("REPLY_OF"), + vec![], + ), + EdgeParquetInput::new( + pq(parquet_dir, "person_KNOWS_person"), + "creationDate", + "START_ID", + "END_ID", + Some("KNOWS"), + vec![], + ), + EdgeParquetInput::new( + pq(parquet_dir, "person_LIKES_post"), + "creationDate", + "START_ID", + "END_ID", + Some("LIKES"), + vec![], + ), + EdgeParquetInput::new( + pq(parquet_dir, "person_LIKES_comment"), + "creationDate", + "START_ID", + "END_ID", + Some("LIKES"), + vec![], + ), + EdgeParquetInput::new( + pq(parquet_dir, "forum_HAS_MEMBER_person"), + "joinDate", + "START_ID", + "END_ID", + Some("HAS_MEMBER"), + vec![], + ), + EdgeParquetInput::new( + pq(parquet_dir, "person_STUDY_AT_organisation"), + "_time", + "START_ID", + "END_ID", + Some("STUDY_AT"), + vec![], + ), + EdgeParquetInput::new( + pq(parquet_dir, "person_WORK_AT_organisation"), + "_time", + "START_ID", + "END_ID", + Some("WORK_AT"), + vec![], + ), + EdgeParquetInput::new( + pq(parquet_dir, "post_HAS_TAG_tag"), + "_time", + "START_ID", + "END_ID", + Some("HAS_TAG"), + vec![], + ), + EdgeParquetInput::new( + pq(parquet_dir, "comment_HAS_TAG_tag"), + "_time", + "START_ID", + "END_ID", + Some("HAS_TAG"), + vec![], + ), + EdgeParquetInput::new( + pq(parquet_dir, "forum_HAS_TAG_tag"), + "_time", + "START_ID", + "END_ID", + Some("HAS_TAG"), + vec![], + ), + EdgeParquetInput::new( + pq(parquet_dir, "person_HAS_INTEREST_tag"), + "_time", + "START_ID", + "END_ID", + Some("HAS_INTEREST"), + vec![], + ), + ]; + + let edge_inputs = edge_inputs + .into_iter() + .filter(|edge| { + filter + .as_ref() + .and_then(|filter| filter.edges.as_ref()) + .map(|e_f| e_f.iter().any(|name| edge.path_as_string().contains(name))) + .unwrap_or(true) + }) + .collect::>(); + + let node_inputs = node_inputs + .into_iter() + .filter(|node| { + filter + .as_ref() + .and_then(|filter| filter.nodes.as_ref()) + .map(|e_f| e_f.iter().any(|name| node.path_as_string().contains(name))) + .unwrap_or(true) + }) + .collect::>(); - load_edges_from_parquet( - graph, - &pq(parquet_dir, "forum_HAS_TAG_tag"), - ColumnNames::new("_time", None, "START_ID", "END_ID", None), - true, - &[], - &[], - None, - Some("HAS_TAG"), - None, - None, - )?; - graph.flush()?; - println!(" ✓ HAS_TAG edges"); + println!( + "edge_inputs: {:?}, node_inputs: {:?}", + edge_inputs + .iter() + .map(|e| e.path_as_string()) + .collect::>(), + node_inputs + .iter() + .map(|e| e.path_as_string()) + .collect::>(), + ); - println!("Loading HAS_INTEREST edges..."); - load_edges_from_parquet( - graph, - &pq(parquet_dir, "person_HAS_INTEREST_tag"), - ColumnNames::new("_time", None, "START_ID", "END_ID", None), - true, - &[], - &[], - None, - Some("HAS_INTEREST"), - None, - None, - )?; - graph.flush()?; - println!(" ✓ HAS_INTEREST edges"); + load_snb_graph_v2(node_inputs, edge_inputs, graph)?; println!( "\n✅ Graph loaded: {} nodes, {} edges", @@ -559,6 +459,12 @@ fn load_snb_graph(parquet_dir: &Path, graph: &Graph) -> Result<(), GraphError> { Ok(()) } +#[derive(Deserialize)] +struct Filter { + nodes: Option>, + edges: Option>, +} + #[cfg(feature = "io")] fn main() { let parquet_dir = std::env::args() @@ -569,8 +475,13 @@ fn main() { .nth(2) .map(|graph| PathBuf::from(graph)) .unwrap_or_else(|| parquet_dir.join("..").join("graph")); + let filter = std::env::args() + .nth(3) + .map(|s| serde_json::from_str::(&s)) + .transpose() + .unwrap(); let graph = Graph::new_at_path(&graph_path).unwrap(); - load_snb_graph(&parquet_dir, &graph).unwrap() + load_snb_graph(&parquet_dir, filter, &graph).unwrap() } #[cfg(not(feature = "io"))] diff --git a/raphtory/src/arrow_loader/df_loaders/edges.rs b/raphtory/src/arrow_loader/df_loaders/edges.rs index f632682b6d..e7eb444d74 100644 --- a/raphtory/src/arrow_loader/df_loaders/edges.rs +++ b/raphtory/src/arrow_loader/df_loaders/edges.rs @@ -762,7 +762,7 @@ fn update_edge_properties>( ) { let mut t_props = vec![]; let mut c_props = vec![]; - let mut writer = shard.writer(); + let mut writer = shard.bulk_writer(); for (row, src, dst, time, secondary_index, eid, layer, exists) in zip { if let Some(eid_pos) = writer.resolve_pos(eid) { @@ -802,7 +802,7 @@ fn update_inbound_edges>( zip: impl Iterator, delete: bool, ) { - let mut writer = shard.writer(); + let mut writer = shard.bulk_writer(); for ( _row, src, @@ -858,7 +858,7 @@ fn add_and_resolve_outbound_edges< locked_page: &mut LockedNodePage<'_, NS>, delete: bool, ) { - let mut writer = locked_page.writer(); + let mut writer = locked_page.bulk_writer(); for (row, src, dst, time, secondary_index, layer) in zip { if let Some(src_pos) = writer.resolve_pos(src) { let t = EventTime(time, secondary_index); @@ -946,7 +946,7 @@ pub fn store_node_ids>( gid_str_cache: &[(GidRef<'_>, VID)], locked_page: &mut LockedNodePage<'_, NS>, ) { - let mut writer = locked_page.writer(); + let mut writer = locked_page.bulk_writer(); for (src_gid, vid) in gid_str_cache.iter() { if let Some(src_pos) = writer.resolve_pos(*vid) { writer.store_node_id(src_pos, STATIC_GRAPH_LAYER_ID, (*src_gid).into()); From cedcf59ac5a29a610e053c9dd06542a3702c26d6 Mon Sep 17 00:00:00 2001 From: Fabian Murariu Date: Wed, 13 May 2026 15:34:12 +0100 Subject: [PATCH 07/22] uncomment load nodes --- Cargo.lock | 2 +- db4-storage/src/pages/node_page/writer.rs | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e9274f938e..1a5ce66f44 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7534,7 +7534,7 @@ checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" [[package]] name = "snb" -version = "0.17.0" +version = "0.18.0" dependencies = [ "chrono", "flate2", diff --git a/db4-storage/src/pages/node_page/writer.rs b/db4-storage/src/pages/node_page/writer.rs index 70b8bb453d..1bc3a2cb73 100644 --- a/db4-storage/src/pages/node_page/writer.rs +++ b/db4-storage/src/pages/node_page/writer.rs @@ -101,7 +101,6 @@ impl<'a, MP: DerefMut + 'a, NS: NodeSegmentOps> NodeWri self.mut_segment.increment_est_size(add); if is_new_node && !self.page.has_node(src_pos, layer_id) { - // self.l_counter.increment(layer_id); layer_counter(layer_id); } } From 3817b9781d9b99e06d17fbbb465be213e3c53115 Mon Sep 17 00:00:00 2001 From: Fabian Murariu Date: Sat, 16 May 2026 16:38:49 +0100 Subject: [PATCH 08/22] add API for total memory --- db4-storage/src/pages/edge_page/mod.rs | 2 +- db4-storage/src/pages/locked/edges.rs | 6 +++++- db4-storage/src/pages/locked/nodes.rs | 6 +++++- .../src/pages/node_page/bulk_writer.rs | 2 +- db4-storage/src/pages/node_page/mod.rs | 2 +- db4-storage/src/segments/edge/segment.rs | 16 +++++++++------ db4-storage/src/segments/node/segment.rs | 20 +++++++++++-------- raphtory-storage/src/graph/graph.rs | 8 ++++++-- raphtory/examples/snb_loader.rs | 6 +++++- 9 files changed, 46 insertions(+), 22 deletions(-) diff --git a/db4-storage/src/pages/edge_page/mod.rs b/db4-storage/src/pages/edge_page/mod.rs index 69fc99e0c2..a1f6628c62 100644 --- a/db4-storage/src/pages/edge_page/mod.rs +++ b/db4-storage/src/pages/edge_page/mod.rs @@ -1,2 +1,2 @@ -pub mod writer; pub mod bulk_writer; +pub mod writer; diff --git a/db4-storage/src/pages/locked/edges.rs b/db4-storage/src/pages/locked/edges.rs index 336eb8e72a..d3b94f7b4e 100644 --- a/db4-storage/src/pages/locked/edges.rs +++ b/db4-storage/src/pages/locked/edges.rs @@ -4,7 +4,11 @@ use crate::{ LocalPOS, api::edges::EdgeSegmentOps, error::StorageError, - pages::{edge_page::{bulk_writer::BulkEdgeWriter, writer::EdgeWriter}, layer_counter::GraphStats, resolve_pos}, + pages::{ + edge_page::{bulk_writer::BulkEdgeWriter, writer::EdgeWriter}, + layer_counter::GraphStats, + resolve_pos, + }, persist::strategy::PersistenceStrategy, segments::edge::segment::MemEdgeSegment, }; diff --git a/db4-storage/src/pages/locked/nodes.rs b/db4-storage/src/pages/locked/nodes.rs index 3ec70f1f8f..3b394b4edf 100644 --- a/db4-storage/src/pages/locked/nodes.rs +++ b/db4-storage/src/pages/locked/nodes.rs @@ -2,7 +2,11 @@ use crate::{ LocalPOS, api::nodes::NodeSegmentOps, error::StorageError, - pages::{layer_counter::GraphStats, node_page::{bulk_writer::BulkNodeWriter, writer::NodeWriter}, resolve_pos}, + pages::{ + layer_counter::GraphStats, + node_page::{bulk_writer::BulkNodeWriter, writer::NodeWriter}, + resolve_pos, + }, persist::strategy::PersistenceStrategy, segments::node::segment::MemNodeSegment, }; diff --git a/db4-storage/src/pages/node_page/bulk_writer.rs b/db4-storage/src/pages/node_page/bulk_writer.rs index d5e0b41eac..7c1b484bf7 100644 --- a/db4-storage/src/pages/node_page/bulk_writer.rs +++ b/db4-storage/src/pages/node_page/bulk_writer.rs @@ -134,7 +134,7 @@ impl<'a, MP: DerefMut + 'a, NS: NodeSegmentOps> } } -impl<'a, MP: DerefMut , ES: NodeSegmentOps> Drop +impl<'a, MP: DerefMut, ES: NodeSegmentOps> Drop for BulkNodeWriter<'a, MP, ES> { fn drop(&mut self) { diff --git a/db4-storage/src/pages/node_page/mod.rs b/db4-storage/src/pages/node_page/mod.rs index 69fc99e0c2..a1f6628c62 100644 --- a/db4-storage/src/pages/node_page/mod.rs +++ b/db4-storage/src/pages/node_page/mod.rs @@ -1,2 +1,2 @@ -pub mod writer; pub mod bulk_writer; +pub mod writer; diff --git a/db4-storage/src/segments/edge/segment.rs b/db4-storage/src/segments/edge/segment.rs index 54e4d8ab0a..285110ff94 100644 --- a/db4-storage/src/segments/edge/segment.rs +++ b/db4-storage/src/segments/edge/segment.rs @@ -1,30 +1,30 @@ use crate::{ - LocalPOS, api::edges::{EdgeSegmentOps, LockedESegment}, error::StorageError, persist::{config::ConfigOps, strategy::PersistenceStrategy}, properties::PropMutEntry, segments::{ - HasRow, SegmentContainer, edge::entry::{MemEdgeEntry, MemEdgeRef}, + HasRow, SegmentContainer, }, utils::Iter4, wal::LSN, + LocalPOS, }; use parking_lot::lock_api::ArcRwLockReadGuard; use raphtory_api::core::{ entities::{ - LayerId, VID, properties::{ meta::{Meta, STATIC_GRAPH_LAYER_ID}, prop::AsPropRef, }, + LayerId, VID, }, storage::dict_mapper::MaybeNew, }; use raphtory_api_macros::box_on_debug_lifetime; use raphtory_core::{ - entities::{LayerIds, edges::edge_ref::EdgeRef}, + entities::{edges::edge_ref::EdgeRef, LayerIds}, storage::timeindex::{AsTime, EventTime}, }; use rayon::prelude::*; @@ -32,8 +32,8 @@ use std::{ ops::{Deref, DerefMut}, path::PathBuf, sync::{ - Arc, atomic::{self, AtomicU32, AtomicUsize, Ordering}, + Arc, }, }; @@ -94,6 +94,10 @@ impl MemEdgeSegment { .fetch_add(increment, Ordering::Relaxed); } + pub fn memory_tracker(&self) -> &Arc { + &self.global_memory_tracker + } + pub fn edge_meta(&self) -> &Arc { self.layers[0].meta() } @@ -641,9 +645,9 @@ impl>> EdgeSegmentOps for EdgeSeg mod test { use super::*; use crate::{ - Config, pages::{edge_page::writer::EdgeWriter, layer_counter::GraphStats}, persist::strategy::NoOpStrategy, + Config, }; use raphtory_api::core::entities::properties::{ meta::{Meta, STATIC_GRAPH_LAYER_ID}, diff --git a/db4-storage/src/segments/node/segment.rs b/db4-storage/src/segments/node/segment.rs index 7a57aa0598..4bd9bb708c 100644 --- a/db4-storage/src/segments/node/segment.rs +++ b/db4-storage/src/segments/node/segment.rs @@ -1,37 +1,37 @@ use crate::{ - LocalPOS, api::nodes::{LockedNSSegment, NodeSegmentOps}, error::StorageError, loop_lock_write, persist::{config::ConfigOps, strategy::PersistenceStrategy}, segments::{ - HasRow, SegmentContainer, node::entry::{MemNodeEntry, MemNodeRef}, + HasRow, SegmentContainer, }, wal::LSN, + LocalPOS, }; use either::Either; -use parking_lot::{RwLock, lock_api::ArcRwLockReadGuard}; +use parking_lot::{lock_api::ArcRwLockReadGuard, RwLock}; use raphtory_api::core::{ - Direction, entities::{ - EID, LayerId, VID, properties::{ meta::Meta, prop::{AsPropRef, Prop}, }, + LayerId, EID, VID, }, + Direction, }; use raphtory_core::{ - entities::{ELID, nodes::structure::adj::Adj}, + entities::{nodes::structure::adj::Adj, ELID}, storage::timeindex::{AsTime, EventTime}, }; use std::{ ops::{Deref, DerefMut}, path::PathBuf, sync::{ - Arc, atomic::{AtomicU32, AtomicUsize, Ordering}, + Arc, }, }; @@ -103,6 +103,10 @@ impl MemNodeSegment { self.est_size } + pub fn memory_tracker(&self) -> &Arc { + &self.global_mem_tracker + } + pub(crate) fn increment_global_est_size(&self, increment: usize) { self.global_mem_tracker .fetch_add(increment, Ordering::Relaxed); @@ -624,13 +628,13 @@ impl>> NodeSegmentOps for NodeSeg #[cfg(test)] mod test { use crate::{ - LocalPOS, NodeSegmentView, api::nodes::NodeSegmentOps, pages::{layer_counter::GraphStats, node_page::writer::NodeWriter}, persist::{ config::BaseConfig, strategy::{NoOpStrategy, PersistenceStrategy}, }, + LocalPOS, NodeSegmentView, }; use raphtory_api::core::entities::properties::{ meta::{Meta, STATIC_GRAPH_LAYER_ID}, diff --git a/raphtory-storage/src/graph/graph.rs b/raphtory-storage/src/graph/graph.rs index 0526415cb4..1dc73c6994 100644 --- a/raphtory-storage/src/graph/graph.rs +++ b/raphtory-storage/src/graph/graph.rs @@ -18,8 +18,8 @@ use raphtory_api::core::entities::{ use raphtory_core::entities::{edges::edge_ref::EdgeRef, nodes::node_ref::NodeRef}; use std::{fmt::Debug, iter, path::Path, sync::Arc}; use storage::{ - error::StorageError, pages::SegmentCounts, state::StateIndex, Extension, GIDResolver, - GraphPropEntry, + error::StorageError, pages::SegmentCounts, persist::strategy::PersistenceStrategy, + state::StateIndex, Extension, GIDResolver, GraphPropEntry, }; use thiserror::Error; @@ -307,6 +307,10 @@ impl GraphStorage { } } + pub fn total_allocated_memory(&self) -> usize { + self.extension().estimated_size() + } + pub fn node_segment_counts(&self) -> SegmentCounts { match self { GraphStorage::Mem(storage) => storage.nodes.segment_counts(), diff --git a/raphtory/examples/snb_loader.rs b/raphtory/examples/snb_loader.rs index b8ca0c0c10..83a1951269 100644 --- a/raphtory/examples/snb_loader.rs +++ b/raphtory/examples/snb_loader.rs @@ -480,7 +480,11 @@ fn main() { .map(|s| serde_json::from_str::(&s)) .transpose() .unwrap(); - let graph = Graph::new_at_path(&graph_path).unwrap(); + let graph = if !graph_path.exists() { + Graph::new_at_path(&graph_path).unwrap() + } else { + Graph::load(&graph_path).unwrap() + }; load_snb_graph(&parquet_dir, filter, &graph).unwrap() } From 641d9797ad9e4bfbaf7ccc3ec1d5dff87dca5362 Mon Sep 17 00:00:00 2001 From: Fabian Murariu Date: Mon, 18 May 2026 15:11:31 +0100 Subject: [PATCH 09/22] minor additions to PropType --- .../entities/properties/prop/prop_type.rs | 123 +++++++++++++++++- raphtory-core/src/storage/mod.rs | 8 +- 2 files changed, 126 insertions(+), 5 deletions(-) diff --git a/raphtory-api/src/core/entities/properties/prop/prop_type.rs b/raphtory-api/src/core/entities/properties/prop/prop_type.rs index 1807084aa5..b1b17c3131 100644 --- a/raphtory-api/src/core/entities/properties/prop/prop_type.rs +++ b/raphtory-api/src/core/entities/properties/prop/prop_type.rs @@ -208,7 +208,7 @@ pub struct InvalidPropertyTypeErr(pub DataType); pub mod arrow { use crate::core::entities::properties::prop::{PropType, EMPTY_MAP_FIELD_NAME}; - use arrow_schema::{DataType, TimeUnit}; + use arrow_schema::{DataType, Field, Fields, TimeUnit}; impl From<&DataType> for PropType { fn from(value: &DataType) -> Self { @@ -244,6 +244,55 @@ pub mod arrow { } } } + + impl From<&PropType> for DataType { + fn from(value: &PropType) -> Self { + match value { + PropType::Str => DataType::Utf8View, + PropType::U8 => DataType::UInt8, + PropType::U16 => DataType::UInt16, + PropType::I32 => DataType::Int32, + PropType::I64 => DataType::Int64, + PropType::U32 => DataType::UInt32, + PropType::U64 => DataType::UInt64, + PropType::F32 => DataType::Float32, + PropType::F64 => DataType::Float64, + PropType::Decimal { scale } => { + DataType::Decimal128(38, (*scale).try_into().unwrap()) + } + PropType::Bool => DataType::Boolean, + PropType::NDTime => DataType::Timestamp(TimeUnit::Millisecond, None), + PropType::DTime => DataType::Timestamp(TimeUnit::Millisecond, Some("UTC".into())), + PropType::List(p_type) => DataType::LargeList( + Field::new("data", DataType::from(p_type.as_ref()), true).into(), + ), + PropType::Map(p_type) => { + let mut fields = p_type + .iter() + .map(|(name, p_type)| Field::new(name, DataType::from(p_type), true)) + .collect::>(); + fields.sort_by(|l, r| l.name().cmp(r.name())); + + if fields.is_empty() { + DataType::Struct(Fields::from_iter([Field::new( + EMPTY_MAP_FIELD_NAME, + DataType::Null, + true, + )])) + } else { + DataType::Struct(fields.into()) + } + } + PropType::Empty => DataType::Null, + } + } + } + + impl From for DataType { + fn from(value: PropType) -> Self { + DataType::from(&value) + } + } } // step through these types trees and check they are structurally the same @@ -369,6 +418,8 @@ pub fn check_for_unification(l: &PropType, r: &PropType) -> Option { #[cfg(test)] mod test { use super::*; + use arrow_schema::{DataType, Field, Fields, TimeUnit}; + use proptest::{collection::btree_map, prelude::*}; #[test] fn test_unify_types_ne() { @@ -501,4 +552,74 @@ mod test { let size = size_of::(); println!("PropError = {size}") } + + fn field_name() -> impl Strategy { + proptest::string::string_regex("[a-z][a-z0-9_]{0,6}") + .unwrap() + .prop_filter("not the empty map sentinel", |name| { + name != crate::core::entities::properties::prop::EMPTY_MAP_FIELD_NAME + }) + } + + fn canonical_data_type() -> impl Strategy { + let leaf = prop_oneof![ + Just(DataType::Boolean), + Just(DataType::Int32), + Just(DataType::Int64), + Just(DataType::UInt8), + Just(DataType::UInt16), + Just(DataType::UInt32), + Just(DataType::UInt64), + Just(DataType::Float32), + Just(DataType::Float64), + Just(DataType::Utf8View), + Just(DataType::Timestamp(TimeUnit::Millisecond, None)), + Just(DataType::Timestamp( + TimeUnit::Millisecond, + Some("UTC".into()) + )), + (0i8..=38).prop_map(|scale| DataType::Decimal128(38, scale)), + Just(DataType::Null), + ]; + + leaf.prop_recursive(4, 64, 4, |inner| { + prop_oneof![ + inner.clone().prop_map(|data_type| DataType::LargeList( + Field::new("data", data_type, true).into() + )), + btree_map(field_name(), inner, 0..4).prop_map(|fields| { + if fields.is_empty() { + DataType::Struct(Fields::from_iter([Field::new( + crate::core::entities::properties::prop::EMPTY_MAP_FIELD_NAME, + DataType::Null, + true, + )])) + } else { + DataType::Struct( + fields + .into_iter() + .map(|(name, data_type)| Field::new(name, data_type, true)) + .collect::>() + .into(), + ) + } + }), + ] + }) + } + + proptest! { + #[test] + fn data_type_to_prop_type_to_data_type_is_transitive(data_type in canonical_data_type()) { + prop_assert_eq!(DataType::from(PropType::from(&data_type)), data_type); + } + + #[test] + fn prop_type_to_data_type_to_prop_type_is_transitive(data_type in canonical_data_type()) { + let prop_type = PropType::from(&data_type); + let round_tripped: DataType = (&prop_type).into(); + + prop_assert_eq!(PropType::from(&round_tripped), prop_type); + } + } } diff --git a/raphtory-core/src/storage/mod.rs b/raphtory-core/src/storage/mod.rs index 6aaf77501a..ca4d9f1dfa 100644 --- a/raphtory-core/src/storage/mod.rs +++ b/raphtory-core/src/storage/mod.rs @@ -165,7 +165,7 @@ impl PropColumn { col } - pub(crate) fn dtype(&self) -> PropType { + pub(crate) fn dtype_for_error_report(&self) -> PropType { match self { PropColumn::Empty(_) => PropType::Empty, PropColumn::Bool(_) => PropType::Bool, @@ -230,7 +230,7 @@ impl PropColumn { } (col, prop) => { Err(IllegalPropType { - expected: col.dtype(), + expected: col.dtype_for_error_report(), actual: prop.into_prop().dtype(), })?; } @@ -261,7 +261,7 @@ impl PropColumn { )?, (col, prop) => { Err(IllegalPropType { - expected: col.dtype(), + expected: col.dtype_for_error_report(), actual: prop.clone().into_prop().dtype(), })?; } @@ -308,7 +308,7 @@ impl PropColumn { } (col, prop) => { Err(IllegalPropType { - expected: col.dtype(), + expected: col.dtype_for_error_report(), actual: prop.into_prop().dtype(), })?; } From 2a18473adee03dfd6f30f92aa5a0684754fb2818 Mon Sep 17 00:00:00 2001 From: Fabian Murariu Date: Tue, 19 May 2026 17:41:38 +0100 Subject: [PATCH 10/22] fmt --- db4-storage/src/segments/edge/segment.rs | 12 ++++++------ db4-storage/src/segments/node/segment.rs | 16 ++++++++-------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/db4-storage/src/segments/edge/segment.rs b/db4-storage/src/segments/edge/segment.rs index 285110ff94..b39173ce35 100644 --- a/db4-storage/src/segments/edge/segment.rs +++ b/db4-storage/src/segments/edge/segment.rs @@ -1,30 +1,30 @@ use crate::{ + LocalPOS, api::edges::{EdgeSegmentOps, LockedESegment}, error::StorageError, persist::{config::ConfigOps, strategy::PersistenceStrategy}, properties::PropMutEntry, segments::{ - edge::entry::{MemEdgeEntry, MemEdgeRef}, HasRow, SegmentContainer, + edge::entry::{MemEdgeEntry, MemEdgeRef}, }, utils::Iter4, wal::LSN, - LocalPOS, }; use parking_lot::lock_api::ArcRwLockReadGuard; use raphtory_api::core::{ entities::{ + LayerId, VID, properties::{ meta::{Meta, STATIC_GRAPH_LAYER_ID}, prop::AsPropRef, }, - LayerId, VID, }, storage::dict_mapper::MaybeNew, }; use raphtory_api_macros::box_on_debug_lifetime; use raphtory_core::{ - entities::{edges::edge_ref::EdgeRef, LayerIds}, + entities::{LayerIds, edges::edge_ref::EdgeRef}, storage::timeindex::{AsTime, EventTime}, }; use rayon::prelude::*; @@ -32,8 +32,8 @@ use std::{ ops::{Deref, DerefMut}, path::PathBuf, sync::{ - atomic::{self, AtomicU32, AtomicUsize, Ordering}, Arc, + atomic::{self, AtomicU32, AtomicUsize, Ordering}, }, }; @@ -645,9 +645,9 @@ impl>> EdgeSegmentOps for EdgeSeg mod test { use super::*; use crate::{ + Config, pages::{edge_page::writer::EdgeWriter, layer_counter::GraphStats}, persist::strategy::NoOpStrategy, - Config, }; use raphtory_api::core::entities::properties::{ meta::{Meta, STATIC_GRAPH_LAYER_ID}, diff --git a/db4-storage/src/segments/node/segment.rs b/db4-storage/src/segments/node/segment.rs index 4bd9bb708c..bd406bb536 100644 --- a/db4-storage/src/segments/node/segment.rs +++ b/db4-storage/src/segments/node/segment.rs @@ -1,37 +1,37 @@ use crate::{ + LocalPOS, api::nodes::{LockedNSSegment, NodeSegmentOps}, error::StorageError, loop_lock_write, persist::{config::ConfigOps, strategy::PersistenceStrategy}, segments::{ - node::entry::{MemNodeEntry, MemNodeRef}, HasRow, SegmentContainer, + node::entry::{MemNodeEntry, MemNodeRef}, }, wal::LSN, - LocalPOS, }; use either::Either; -use parking_lot::{lock_api::ArcRwLockReadGuard, RwLock}; +use parking_lot::{RwLock, lock_api::ArcRwLockReadGuard}; use raphtory_api::core::{ + Direction, entities::{ + EID, LayerId, VID, properties::{ meta::Meta, prop::{AsPropRef, Prop}, }, - LayerId, EID, VID, }, - Direction, }; use raphtory_core::{ - entities::{nodes::structure::adj::Adj, ELID}, + entities::{ELID, nodes::structure::adj::Adj}, storage::timeindex::{AsTime, EventTime}, }; use std::{ ops::{Deref, DerefMut}, path::PathBuf, sync::{ - atomic::{AtomicU32, AtomicUsize, Ordering}, Arc, + atomic::{AtomicU32, AtomicUsize, Ordering}, }, }; @@ -628,13 +628,13 @@ impl>> NodeSegmentOps for NodeSeg #[cfg(test)] mod test { use crate::{ + LocalPOS, NodeSegmentView, api::nodes::NodeSegmentOps, pages::{layer_counter::GraphStats, node_page::writer::NodeWriter}, persist::{ config::BaseConfig, strategy::{NoOpStrategy, PersistenceStrategy}, }, - LocalPOS, NodeSegmentView, }; use raphtory_api::core::entities::properties::{ meta::{Meta, STATIC_GRAPH_LAYER_ID}, From 71f83d368f3bec87052981a24cb46bf7de0dc774 Mon Sep 17 00:00:00 2001 From: Fabian Murariu Date: Wed, 20 May 2026 22:25:03 +0100 Subject: [PATCH 11/22] make edge deletion Pod --- raphtory-api/src/core/entities/mod.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/raphtory-api/src/core/entities/mod.rs b/raphtory-api/src/core/entities/mod.rs index 18dd85f92b..4b4499d78c 100644 --- a/raphtory-api/src/core/entities/mod.rs +++ b/raphtory-api/src/core/entities/mod.rs @@ -145,7 +145,8 @@ pub struct ELID { } /// Edge id with deletion flag -#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default, Serialize, Deserialize)] +#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default, Serialize, Deserialize, Pod, Zeroable)] +#[repr(transparent)] pub struct EDID(pub usize); impl Debug for EDID { From 6155795c50678741004d08254960c43379d0fb65 Mon Sep 17 00:00:00 2001 From: Fabian Murariu Date: Thu, 21 May 2026 09:55:39 +0100 Subject: [PATCH 12/22] fix compilation issue --- raphtory/examples/snb_loader.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/raphtory/examples/snb_loader.rs b/raphtory/examples/snb_loader.rs index 83a1951269..1285d31c8c 100644 --- a/raphtory/examples/snb_loader.rs +++ b/raphtory/examples/snb_loader.rs @@ -5,8 +5,6 @@ use raphtory::{arrow_loader::df_loaders::edges::ColumnNames, errors::GraphError, use serde::Deserialize; #[cfg(feature = "io")] use std::path::{Path, PathBuf}; -#[cfg(feature = "io")] -use storage::persist::node; /// Construct the path to a named Parquet file inside `parquet_dir`. #[cfg(feature = "io")] From fa2c8bd0510784f8ac15e095212ea0df3ffba7ef Mon Sep 17 00:00:00 2001 From: Fabian Murariu Date: Thu, 21 May 2026 09:58:54 +0100 Subject: [PATCH 13/22] fmt --- raphtory-api/src/core/entities/mod.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/raphtory-api/src/core/entities/mod.rs b/raphtory-api/src/core/entities/mod.rs index 4b4499d78c..6427359939 100644 --- a/raphtory-api/src/core/entities/mod.rs +++ b/raphtory-api/src/core/entities/mod.rs @@ -145,7 +145,20 @@ pub struct ELID { } /// Edge id with deletion flag -#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default, Serialize, Deserialize, Pod, Zeroable)] +#[derive( + Copy, + Clone, + PartialEq, + Eq, + PartialOrd, + Ord, + Hash, + Default, + Serialize, + Deserialize, + Pod, + Zeroable, +)] #[repr(transparent)] pub struct EDID(pub usize); From ac1b3057b499b24dcaaba134c7eb5f9216267ab9 Mon Sep 17 00:00:00 2001 From: Fabian Murariu Date: Mon, 8 Jun 2026 09:00:10 +0100 Subject: [PATCH 14/22] update loaders --- Cargo.lock | 2665 +++++++++++++++---------------- raphtory/examples/eth_loader.rs | 20 +- raphtory/examples/snb_loader.rs | 12 +- 3 files changed, 1268 insertions(+), 1429 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1a5ce66f44..d7202d1bad 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -20,13 +20,13 @@ checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aes" -version = "0.8.4" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +checksum = "f1fc76eaeac4c9164506c466d4ffdd8ec9d0c5bf57ee97177c4d8eceb3a0e138" dependencies = [ - "cfg-if", "cipher", - "cpufeatures 0.2.17", + "cpubits", + "cpufeatures 0.3.0", ] [[package]] @@ -74,6 +74,15 @@ dependencies = [ "alloc-no-stdlib", ] +[[package]] +name = "alloca" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a7d05ea6aea7e9e64d25b9156ba2fee3fdd659e34e41063cd2fc7cd020d7f4" +dependencies = [ + "cc", +] + [[package]] name = "allocator-api2" version = "0.2.21" @@ -151,15 +160,6 @@ version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" -[[package]] -name = "arbitrary" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" -dependencies = [ - "derive_arbitrary", -] - [[package]] name = "arc-swap" version = "1.9.1" @@ -189,9 +189,9 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "arrow" -version = "57.3.0" +version = "58.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4754a624e5ae42081f464514be454b39711daae0458906dacde5f4c632f33a8" +checksum = "378530e55cd479eda3c14eb345310799717e6f76d0c332041e8487022166b471" dependencies = [ "arrow-arith", "arrow-array", @@ -210,9 +210,9 @@ dependencies = [ [[package]] name = "arrow-arith" -version = "57.3.0" +version = "58.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7b3141e0ec5145a22d8694ea8b6d6f69305971c4fa1c1a13ef0195aef2d678b" +checksum = "a0ab212d2c1886e802f51c5212d78ebbcbb0bec980fff9dadc1eb8d45cd0b738" dependencies = [ "arrow-array", "arrow-buffer", @@ -224,9 +224,9 @@ dependencies = [ [[package]] name = "arrow-array" -version = "57.3.0" +version = "58.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8955af33b25f3b175ee10af580577280b4bd01f7e823d94c7cdef7cf8c9aef" +checksum = "cfd33d3e92f207444098c75b42de99d329562be0cf686b307b097cc52b4e999e" dependencies = [ "ahash", "arrow-buffer", @@ -235,7 +235,7 @@ dependencies = [ "chrono", "chrono-tz 0.10.4", "half", - "hashbrown 0.16.1", + "hashbrown 0.17.1", "num-complex", "num-integer", "num-traits", @@ -243,9 +243,9 @@ dependencies = [ [[package]] name = "arrow-buffer" -version = "57.3.0" +version = "58.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c697ddca96183182f35b3a18e50b9110b11e916d7b7799cbfd4d34662f2c56c2" +checksum = "0c6cd424c2693bcdbc150d843dc9d4d137dd2de4782ce6df491ad11a3a0416c0" dependencies = [ "bytes", "half", @@ -255,9 +255,9 @@ dependencies = [ [[package]] name = "arrow-cast" -version = "57.3.0" +version = "58.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "646bbb821e86fd57189c10b4fcdaa941deaf4181924917b0daa92735baa6ada5" +checksum = "4c5aefb56a2c02e9e2b30746241058b85f8983f0fcff2ba0c6d09006e1cded7f" dependencies = [ "arrow-array", "arrow-buffer", @@ -266,7 +266,7 @@ dependencies = [ "arrow-schema", "arrow-select", "atoi", - "base64 0.22.1", + "base64", "chrono", "comfy-table", "half", @@ -277,9 +277,9 @@ dependencies = [ [[package]] name = "arrow-csv" -version = "57.3.0" +version = "58.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da746f4180004e3ce7b83c977daf6394d768332349d3d913998b10a120b790a" +checksum = "e94e8cf7e517657a52b91ea1263acf38c4ca62a84655d72458a3359b12ab97de" dependencies = [ "arrow-array", "arrow-cast", @@ -292,9 +292,9 @@ dependencies = [ [[package]] name = "arrow-data" -version = "57.3.0" +version = "58.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fdd994a9d28e6365aa78e15da3f3950c0fdcea6b963a12fa1c391afb637b304" +checksum = "3c88210023a2bfee1896af366309a3028fc3bcbd6515fa29a7990ee1baa08ee0" dependencies = [ "arrow-buffer", "arrow-schema", @@ -305,9 +305,9 @@ dependencies = [ [[package]] name = "arrow-ipc" -version = "57.3.0" +version = "58.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf7df950701ab528bf7c0cf7eeadc0445d03ef5d6ffc151eaae6b38a58feff1" +checksum = "238438f0834483703d88896db6fe5a7138b2230debc31b34c0336c2996e3c64f" dependencies = [ "arrow-array", "arrow-buffer", @@ -315,21 +315,22 @@ dependencies = [ "arrow-schema", "arrow-select", "flatbuffers", - "lz4_flex 0.12.1", + "lz4_flex", "zstd", ] [[package]] name = "arrow-json" -version = "57.3.0" +version = "58.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ff8357658bedc49792b13e2e862b80df908171275f8e6e075c460da5ee4bf86" +checksum = "205ca2119e6d679d5c133c6f30e68f027738d95ed948cf77677ea69c7800036b" dependencies = [ "arrow-array", "arrow-buffer", "arrow-cast", - "arrow-data", + "arrow-ord", "arrow-schema", + "arrow-select", "chrono", "half", "indexmap 2.14.0", @@ -345,9 +346,9 @@ dependencies = [ [[package]] name = "arrow-ord" -version = "57.3.0" +version = "58.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d8f1870e03d4cbed632959498bcc84083b5a24bded52905ae1695bd29da45b" +checksum = "1bffd8fd2579286a5d63bac898159873e5094a79009940bcb42bbfce4f19f1d0" dependencies = [ "arrow-array", "arrow-buffer", @@ -358,9 +359,9 @@ dependencies = [ [[package]] name = "arrow-row" -version = "57.3.0" +version = "58.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18228633bad92bff92a95746bbeb16e5fc318e8382b75619dec26db79e4de4c0" +checksum = "bab5994731204603c73ba69267616c50f80780774c6bb0476f1f830625115e0c" dependencies = [ "arrow-array", "arrow-buffer", @@ -371,20 +372,20 @@ dependencies = [ [[package]] name = "arrow-schema" -version = "57.3.0" +version = "58.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c872d36b7bf2a6a6a2b40de9156265f0242910791db366a2c17476ba8330d68" +checksum = "f633dbfdf39c039ada1bf9e34c694816eb71fbb7dc78f613993b7245e078a1ed" dependencies = [ - "bitflags", + "bitflags 2.11.1", "serde_core", "serde_json", ] [[package]] name = "arrow-select" -version = "57.3.0" +version = "58.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68bf3e3efbd1278f770d67e5dc410257300b161b93baedb3aae836144edcaf4b" +checksum = "8cd065c54172ac787cf3f2f8d4107e0d3fdc26edba76fdf4f4cc170258942222" dependencies = [ "ahash", "arrow-array", @@ -396,9 +397,9 @@ dependencies = [ [[package]] name = "arrow-string" -version = "57.3.0" +version = "58.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85e968097061b3c0e9fe3079cf2e703e487890700546b5b0647f60fca1b5a8d8" +checksum = "29dd7cda3ab9692f43a2e4acc444d760cc17b12bb6d8232ddf64e9bab7c06b42" dependencies = [ "arrow-array", "arrow-buffer", @@ -453,7 +454,7 @@ dependencies = [ "async-io", "async-trait", "asynk-strim", - "base64 0.22.1", + "base64", "bytes", "chrono", "fast_chemail", @@ -546,7 +547,7 @@ dependencies = [ "futures-lite", "parking", "polling", - "rustix 1.1.4", + "rustix", "slab", "windows-sys 0.61.2", ] @@ -570,13 +571,13 @@ checksum = "4df839a6643e1e3248733b01f229dc4f462d7256f808bbaf04cac40739b345c2" dependencies = [ "async-openai-macros", "backoff", - "base64 0.22.1", + "base64", "bytes", "derive_builder", "eventsource-stream", "futures", "rand 0.8.5", - "reqwest", + "reqwest 0.12.28", "reqwest-eventsource", "secrecy", "serde", @@ -610,28 +611,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "async-stream" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" -dependencies = [ - "async-stream-impl", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-stream-impl" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "async-trait" version = "0.1.89" @@ -706,40 +685,13 @@ dependencies = [ "fs_extra", ] -[[package]] -name = "axum" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" -dependencies = [ - "async-trait", - "axum-core 0.4.5", - "bytes", - "futures-util", - "http", - "http-body", - "http-body-util", - "itoa", - "matchit 0.7.3", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "sync_wrapper", - "tower 0.5.3", - "tower-layer", - "tower-service", -] - [[package]] name = "axum" version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "31b698c5f9a010f6573133b09e0de5408834d0c82f8d7475a89fc1867a71cd90" dependencies = [ - "axum-core 0.5.6", + "axum-core", "bytes", "form_urlencoded", "futures-util", @@ -749,7 +701,7 @@ dependencies = [ "hyper", "hyper-util", "itoa", - "matchit 0.8.4", + "matchit", "memchr", "mime", "percent-encoding", @@ -760,32 +712,12 @@ dependencies = [ "serde_urlencoded", "sync_wrapper", "tokio", - "tower 0.5.3", + "tower", "tower-layer", "tower-service", "tracing", ] -[[package]] -name = "axum-core" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http", - "http-body", - "http-body-util", - "mime", - "pin-project-lite", - "rustversion", - "sync_wrapper", - "tower-layer", - "tower-service", -] - [[package]] name = "axum-core" version = "0.5.6" @@ -819,27 +751,12 @@ dependencies = [ "tokio", ] -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - [[package]] name = "base64" version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" -[[package]] -name = "base64-compat" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a8d4d2746f89841e49230dd26917df1876050f95abafafbe34f47cb534b88d7" -dependencies = [ - "byteorder", -] - [[package]] name = "bigdecimal" version = "0.4.10" @@ -863,26 +780,6 @@ dependencies = [ "serde", ] -[[package]] -name = "bincode" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" -dependencies = [ - "bincode_derive", - "serde", - "unty", -] - -[[package]] -name = "bincode_derive" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09" -dependencies = [ - "virtue", -] - [[package]] name = "bit-set" version = "0.8.0" @@ -898,6 +795,12 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + [[package]] name = "bitflags" version = "2.11.1" @@ -934,7 +837,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" dependencies = [ - "digest", + "digest 0.10.7", ] [[package]] @@ -947,7 +850,7 @@ dependencies = [ "arrayvec", "cc", "cfg-if", - "constant_time_eq 0.4.2", + "constant_time_eq", "cpufeatures 0.3.0", ] @@ -960,6 +863,16 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-buffer" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdd35008169921d80bc60d3d0ab416eecb028c4cd653352907921d95084790be" +dependencies = [ + "hybrid-array", + "zeroize", +] + [[package]] name = "bon" version = "3.9.1" @@ -1018,6 +931,29 @@ version = "3.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" +[[package]] +name = "bytecheck" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0caa33a2c0edca0419d15ac723dff03f1956f7978329b1e3b5fdaaaed9d3ca8b" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "rancor", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "bytemuck" version = "1.25.0" @@ -1055,31 +991,11 @@ dependencies = [ [[package]] name = "bzip2" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" -dependencies = [ - "bzip2-sys", - "libc", -] - -[[package]] -name = "bzip2" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49ecfb22d906f800d4fe833b6282cf4dc1c298f5057ca0b5445e5c209735ca47" -dependencies = [ - "bzip2-sys", -] - -[[package]] -name = "bzip2-sys" -version = "0.1.13+1.0.8" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" +checksum = "f3a53fac24f34a81bc9954b5d6cfce0c21e18ec6959f44f56e8e90e4bb7c346c" dependencies = [ - "cc", - "pkg-config", + "libbz2-rs-sys", ] [[package]] @@ -1100,6 +1016,15 @@ dependencies = [ "shlex", ] +[[package]] +name = "cedarwood" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d910bedd62c24733263d0bed247460853c9d22e8956bd4cd964302095e04e90" +dependencies = [ + "smallvec", +] + [[package]] name = "census" version = "0.4.2" @@ -1118,6 +1043,17 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[package]] +name = "chacha20" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "rand_core 0.10.1", +] + [[package]] name = "chrono" version = "0.4.44" @@ -1161,7 +1097,7 @@ checksum = "433e39f13c9a060046954e0592a8d0a4bcb1040125cbf91cb8ee58964cfb350f" dependencies = [ "parse-zoneinfo", "phf 0.11.3", - "phf_codegen", + "phf_codegen 0.11.3", ] [[package]] @@ -1193,59 +1129,14 @@ dependencies = [ [[package]] name = "cipher" -version = "0.4.4" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +checksum = "e8cf2a2c93cd704877c0858356ed03480ff301ee950b43f1cbe4573b088bfa6c" dependencies = [ - "crypto-common", + "crypto-common 0.2.2", "inout", ] -[[package]] -name = "clam-core" -version = "0.18.0" -dependencies = [ - "ahash", - "arrow", - "async-trait", - "chrono", - "chrono-tz 0.10.4", - "comfy-table", - "criterion", - "db4-storage", - "either", - "env_logger 0.10.2", - "fastrand", - "flate2", - "insta", - "itertools 0.13.0", - "log", - "nom 7.1.3", - "optd-core", - "parking_lot", - "proptest", - "pyo3", - "raphtory", - "raphtory-api", - "raphtory-itertools", - "raphtory-storage", - "rayon", - "regex", - "roaring 0.10.12", - "rustyline", - "serde", - "serde_json", - "slotmap", - "snb", - "tempfile", - "thiserror 2.0.18", - "tikv-jemallocator", - "tokio", - "tracing", - "tracing-test", - "uuid", -] - [[package]] name = "clap" version = "4.6.0" @@ -1286,15 +1177,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" -[[package]] -name = "clipboard-win" -version = "5.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bde03770d3df201d4fb868f2c9c59e66a3e4e2bd06692a0fe701e7103c7e84d4" -dependencies = [ - "error-code", -] - [[package]] name = "cmake" version = "0.1.58" @@ -1304,21 +1186,36 @@ dependencies = [ "cc", ] +[[package]] +name = "cmov" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" + [[package]] name = "colorchoice" version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + [[package]] name = "comfy-table" version = "7.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "958c5d6ecf1f214b4c2bbbbf6ab9523a864bd136dcf71a7e8904799acfe1ad47" dependencies = [ - "crossterm", "unicode-segmentation", - "unicode-width 0.2.2", + "unicode-width", ] [[package]] @@ -1352,39 +1249,29 @@ dependencies = [ [[package]] name = "config" -version = "0.14.1" +version = "0.15.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68578f196d2a33ff61b27fae256c3164f65e36382648e30666dde05b8cc9dfdf" +checksum = "f316c6237b2d38be61949ecd15268a4c6ca32570079394a2444d9ce2c72a72d8" dependencies = [ "async-trait", "convert_case", "json5", - "nom 7.1.3", "pathdiff", "ron", "rust-ini", - "serde", + "serde-untagged", + "serde_core", "serde_json", "toml", + "winnow", "yaml-rust2", ] -[[package]] -name = "console" -version = "0.16.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d64e8af5551369d19cf50138de61f1c42074ab970f74e99be916646777f8fc87" -dependencies = [ - "encode_unicode", - "libc", - "windows-sys 0.61.2", -] - [[package]] name = "const-oid" -version = "0.9.6" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" [[package]] name = "const-random" @@ -1406,12 +1293,6 @@ dependencies = [ "tiny-keccak", ] -[[package]] -name = "constant_time_eq" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" - [[package]] name = "constant_time_eq" version = "0.4.2" @@ -1453,6 +1334,12 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" +[[package]] +name = "cpubits" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15b85f9c39137c3a891689859392b1bd49812121d0d61c9caf00d46ed5ce06ae" + [[package]] name = "cpufeatures" version = "0.2.17" @@ -1471,21 +1358,6 @@ dependencies = [ "libc", ] -[[package]] -name = "crc" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" - [[package]] name = "crc32fast" version = "1.5.0" @@ -1497,25 +1369,24 @@ dependencies = [ [[package]] name = "criterion" -version = "0.5.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" +checksum = "950046b2aa2492f9a536f5f4f9a3de7b9e2476e575e05bd6c333371add4d98f3" dependencies = [ + "alloca", "anes", "cast", "ciborium", "clap", "criterion-plot", - "is-terminal", - "itertools 0.10.5", + "itertools 0.13.0", "num-traits", - "once_cell", "oorandom", + "page_size", "plotters", "rayon", "regex", "serde", - "serde_derive", "serde_json", "tinytemplate", "walkdir", @@ -1523,12 +1394,12 @@ dependencies = [ [[package]] name = "criterion-plot" -version = "0.5.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +checksum = "d8d80a2f4f5b554395e47b5d8305bc3d27813bacb73493eb1001e8f76dae29ea" dependencies = [ "cast", - "itertools 0.10.5", + "itertools 0.13.0", ] [[package]] @@ -1584,29 +1455,6 @@ version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" -[[package]] -name = "crossterm" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" -dependencies = [ - "bitflags", - "crossterm_winapi", - "document-features", - "parking_lot", - "rustix 1.1.4", - "winapi", -] - -[[package]] -name = "crossterm_winapi" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" -dependencies = [ - "winapi", -] - [[package]] name = "crunchy" version = "0.2.4" @@ -1623,6 +1471,15 @@ dependencies = [ "typenum", ] +[[package]] +name = "crypto-common" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" +dependencies = [ + "hybrid-array", +] + [[package]] name = "csv" version = "1.4.0" @@ -1644,6 +1501,21 @@ dependencies = [ "memchr", ] +[[package]] +name = "ctutils" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" +dependencies = [ + "cmov", +] + +[[package]] +name = "daachorse" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db756b5eb7d81d31f31f660f4132f8cf5698de52fca144c143d0ae0cbb5f2e06" + [[package]] name = "darling" version = "0.20.11" @@ -1737,9 +1609,9 @@ checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" [[package]] name = "datafusion" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7541353e77dc7262b71ca27be07d8393661737e3a73b5d1b1c6f7d814c64fa2a" +checksum = "93db0e623840612f7f2cd757f7e8a8922064192363732c88692e0870016e141b" dependencies = [ "arrow", "arrow-schema", @@ -1786,9 +1658,9 @@ dependencies = [ [[package]] name = "datafusion-catalog" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9997731f90fa5398ef831ad0e69600f92c861b79c0d38bd1a29b6f0e3a0ce4c8" +checksum = "37cefde60b26a7f4ff61e9d2ff2833322f91df2b568d7238afe67bde5bdffb66" dependencies = [ "arrow", "async-trait", @@ -1811,9 +1683,9 @@ dependencies = [ [[package]] name = "datafusion-catalog-listing" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b30a3dd50dec860c9559275c8d97d9de602e611237a6ecfbda0b3b63b872352" +checksum = "17e112307715d6a7a331111a4c2330ff54bc237183511c319e3708a4cff431fb" dependencies = [ "arrow", "async-trait", @@ -1834,9 +1706,9 @@ dependencies = [ [[package]] name = "datafusion-common" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d551054acec0398ca604512310b77ce05c46f66e54b54d48200a686e385cca4e" +checksum = "d72a11ca44a95e1081870d3abb80c717496e8a7acb467a1d3e932bb636af5cc2" dependencies = [ "ahash", "arrow", @@ -1845,6 +1717,7 @@ dependencies = [ "half", "hashbrown 0.16.1", "indexmap 2.14.0", + "itertools 0.14.0", "libc", "log", "object_store", @@ -1856,9 +1729,9 @@ dependencies = [ [[package]] name = "datafusion-common-runtime" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567d40e285f5b79f8737b576605721cd6c1133b5d2b00bdbd5d9838d90d0812f" +checksum = "89f4afaed29670ec4fd6053643adc749fe3f4bc9d1ce1b8c5679b22c67d12def" dependencies = [ "futures", "log", @@ -1867,9 +1740,9 @@ dependencies = [ [[package]] name = "datafusion-datasource" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27d2668f51b3b30befae2207472569e37807fdedd1d14da58acc6f8ca6257eae" +checksum = "e9fb386e1691355355a96419978a0022b7947b44d4a24a6ea99f00b6b485cbb6" dependencies = [ "arrow", "async-trait", @@ -1896,9 +1769,9 @@ dependencies = [ [[package]] name = "datafusion-datasource-arrow" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e02e1b3e3a8ec55f1f62de4252b0407c8567363d056078769a197e24fc834a0f" +checksum = "ffa6c52cfed0734c5f93754d1c0175f558175248bf686c944fb05c373e5fc096" dependencies = [ "arrow", "arrow-ipc", @@ -1920,9 +1793,9 @@ dependencies = [ [[package]] name = "datafusion-datasource-csv" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b559d7bf87d4f900f847baba8509634f838d9718695389e903604cdcccdb01f3" +checksum = "503f29e0582c1fc189578d665ff57d9300da1f80c282777d7eb67bb79fb8cdca" dependencies = [ "arrow", "async-trait", @@ -1943,9 +1816,9 @@ dependencies = [ [[package]] name = "datafusion-datasource-json" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "250e2d7591ba8b638f063854650faa40bca4e8bd4059b2ece8836f6388d02db4" +checksum = "e33804749abc8d0c8cb7473228483cb8070e524c6f6086ee1b85a64debe2b3d2" dependencies = [ "arrow", "async-trait", @@ -1960,27 +1833,31 @@ dependencies = [ "datafusion-session", "futures", "object_store", + "serde_json", "tokio", + "tokio-stream", ] [[package]] name = "datafusion-doc" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9496cb0db222dbb9a3735760ceca7fc56f35e1d5502c38d0caa77a81e9c1f6a" +checksum = "8de6ac0df1662b9148ad3c987978b32cbec7c772f199b1d53520c8fa764a87ee" [[package]] name = "datafusion-execution" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc45d23c516ed8d3637751e44e09e21b45b3f58b473c802dddd1f1ad4fe435ff" +checksum = "c03c7fbdaefcca4ef6ffe425a5fc2325763bfb426599bb0bf4536466efabe709" dependencies = [ "arrow", + "arrow-buffer", "async-trait", "chrono", "dashmap", "datafusion-common", "datafusion-expr", + "datafusion-physical-expr-common", "futures", "log", "object_store", @@ -1992,9 +1869,9 @@ dependencies = [ [[package]] name = "datafusion-expr" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63dd30526d2db4fda6440806a41e4676334a94bc0596cc9cc2a0efed20ef2c44" +checksum = "574b9b6977fedbd2a611cbff12e5caf90f31640ad9dc5870f152836d94bad0dd" dependencies = [ "arrow", "async-trait", @@ -2014,9 +1891,9 @@ dependencies = [ [[package]] name = "datafusion-expr-common" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b486b5f6255d40976b88bb83813b0d035a8333e0ec39864824e78068cf42fa6" +checksum = "7d7c3adf3db8bf61e92eb90cb659c8e8b734593a8f7c8e12a843c7ddba24b87e" dependencies = [ "arrow", "datafusion-common", @@ -2027,13 +1904,13 @@ dependencies = [ [[package]] name = "datafusion-functions" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07356c94118d881130dd0ffbff127540407d969c8978736e324edcd6c41cd48f" +checksum = "f28aa4e10384e782774b10e72aca4d93ef7b31aa653095d9d4536b0a3dbc51b6" dependencies = [ "arrow", "arrow-buffer", - "base64 0.22.1", + "base64", "blake2", "blake3", "chrono", @@ -2048,19 +1925,20 @@ dependencies = [ "itertools 0.14.0", "log", "md-5", + "memchr", "num-traits", "rand 0.9.4", "regex", - "sha2", + "sha2 0.10.9", "unicode-segmentation", "uuid", ] [[package]] name = "datafusion-functions-aggregate" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b644f9cf696df9233ce6958b9807666d78563b56f923267474dd6c07795f1f8f" +checksum = "00aa6217e56098ba84e0a338176fe52f0a84cca398021512c6c8c5eff806d0ad" dependencies = [ "ahash", "arrow", @@ -2074,14 +1952,15 @@ dependencies = [ "datafusion-physical-expr-common", "half", "log", + "num-traits", "paste", ] [[package]] name = "datafusion-functions-aggregate-common" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1de2deaaabe8923ce9ea9f29c47bbb4ee14f67ea2fe1ab5398d9bbebcf86e56" +checksum = "b511250349407db7c43832ab2de63f5557b19a20dfd236b39ca2c04468b50d47" dependencies = [ "ahash", "arrow", @@ -2092,9 +1971,9 @@ dependencies = [ [[package]] name = "datafusion-functions-nested" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "552f8d92e4331ee91d23c02d12bb6acf32cbfd5215117e01c0fb63cd4b15af1a" +checksum = "ef13a858e20d50f0a9bb5e96e7ac82b4e7597f247515bccca4fdd2992df0212a" dependencies = [ "arrow", "arrow-ord", @@ -2108,16 +1987,18 @@ dependencies = [ "datafusion-functions-aggregate-common", "datafusion-macros", "datafusion-physical-expr-common", + "hashbrown 0.16.1", "itertools 0.14.0", + "itoa", "log", "paste", ] [[package]] name = "datafusion-functions-table" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "970fd0cdd3df8802b9a9975ff600998289ba9d46682a4f7285cba4820c9ada78" +checksum = "72b40d3f5bbb3905f9ccb1ce9485a9595c77b69758a7c24d3ba79e334ff51e7e" dependencies = [ "arrow", "async-trait", @@ -2131,9 +2012,9 @@ dependencies = [ [[package]] name = "datafusion-functions-window" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40b4c21a7c8a986a1866c0a87ab756d0bbf7b5f41f306009fa2d9af79c52ed31" +checksum = "d4e88ec9d57c9b685d02f58bfee7be62d72610430ddcedb82a08e5d9925dbfb6" dependencies = [ "arrow", "datafusion-common", @@ -2149,9 +2030,9 @@ dependencies = [ [[package]] name = "datafusion-functions-window-common" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1210ad73b8b3211aeaf4a42bef9bd7a2b7fce3ec119a478831f18c6ff7f7b93" +checksum = "8307bb93519b1a91913723a1130cfafeee3f72200d870d88e91a6fc5470ede5c" dependencies = [ "datafusion-common", "datafusion-physical-expr-common", @@ -2159,9 +2040,9 @@ dependencies = [ [[package]] name = "datafusion-macros" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaa566a963013a38681ad82a727a654bc7feb19632426aea8c3412d415d200c5" +checksum = "2e367e6a71051d0ebdd29b2f85d12059b38b1d1f172c6906e80016da662226bd" dependencies = [ "datafusion-doc", "quote", @@ -2170,9 +2051,9 @@ dependencies = [ [[package]] name = "datafusion-optimizer" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff9aa82b240252a88dee118372f9b9757c545ab9e53c0736bebab2e7da0ef1f2" +checksum = "e929015451a67f77d9d8b727b2bf3a40c4445fdef6cdc53281d7d97c76888ace" dependencies = [ "arrow", "chrono", @@ -2189,9 +2070,9 @@ dependencies = [ [[package]] name = "datafusion-physical-expr" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d48022b8af9988c1d852644f9e8b5584c490659769a550c5e8d39457a1da0a5" +checksum = "4b1e68aba7a4b350401cfdf25a3d6f989ad898a7410164afe9ca52080244cb59" dependencies = [ "ahash", "arrow", @@ -2206,15 +2087,15 @@ dependencies = [ "itertools 0.14.0", "parking_lot", "paste", - "petgraph 0.8.3", + "petgraph", "tokio", ] [[package]] name = "datafusion-physical-expr-adapter" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae7a8abc0b4fe624000972a9b145b30b7f1b680bffaa950ea53f78d9b21c27c3" +checksum = "ea22315f33cf2e0adc104e8ec42e285f6ed93998d565c65e82fec6a9ee9f9db4" dependencies = [ "arrow", "datafusion-common", @@ -2227,9 +2108,9 @@ dependencies = [ [[package]] name = "datafusion-physical-expr-common" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147253ca3e6b9d59c162de64c02800973018660e13340dd1886dd038d17ac429" +checksum = "b04b45ea8ad3ac2d78f2ea2a76053e06591c9629c7a603eda16c10649ecf4362" dependencies = [ "ahash", "arrow", @@ -2244,9 +2125,9 @@ dependencies = [ [[package]] name = "datafusion-physical-optimizer" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "689156bb2282107b6239db8d7ef44b4dab10a9b33d3491a0c74acac5e4fedd72" +checksum = "7cb13397809a425918f608dfe8653f332015a3e330004ab191b4404187238b95" dependencies = [ "arrow", "datafusion-common", @@ -2262,9 +2143,9 @@ dependencies = [ [[package]] name = "datafusion-physical-plan" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68253dc0ee5330aa558b2549c9b0da5af9fc17d753ae73022939014ad616fc28" +checksum = "5edc023675791af9d5fb4cc4c24abf5f7bd3bd4dcf9e5bd90ea1eff6976dcc79" dependencies = [ "ahash", "arrow", @@ -2286,6 +2167,7 @@ dependencies = [ "indexmap 2.14.0", "itertools 0.14.0", "log", + "num-traits", "parking_lot", "pin-project-lite", "tokio", @@ -2293,9 +2175,9 @@ dependencies = [ [[package]] name = "datafusion-pruning" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcad240a54d0b1d3e8f668398900260a53122d522b2102ab57218590decacd6" +checksum = "ac8c76860e355616555081cab5968cec1af7a80701ff374510860bcd567e365a" dependencies = [ "arrow", "datafusion-common", @@ -2310,9 +2192,9 @@ dependencies = [ [[package]] name = "datafusion-session" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f58e83a68bb67007a8fcbf005c44cefe441270c7ee7f6dee10c0e0109b556f6d" +checksum = "5412111aa48e2424ba926112e192f7a6b7e4ccb450145d25ce5ede9f19dc491e" dependencies = [ "async-trait", "datafusion-common", @@ -2324,21 +2206,28 @@ dependencies = [ [[package]] name = "datafusion-sql" -version = "52.5.0" +version = "53.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be53e9eb55db0fbb8980bb6d87f2435b0524acf4c718ed54a57cabbb299b2ab3" +checksum = "fa0d133ddf8b9b3b872acac900157f783e7b879fe9a6bccf389abebbfac45ec1" dependencies = [ "arrow", "bigdecimal", "chrono", "datafusion-common", "datafusion-expr", + "datafusion-functions-nested", "indexmap 2.14.0", "log", "regex", "sqlparser", ] +[[package]] +name = "datasketches" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c286de4e81ea2590afc24d754e0f83810c566f50a1388fa75ebd57928c0d9745" + [[package]] name = "db4-graph" version = "0.18.0" @@ -2362,7 +2251,7 @@ dependencies = [ "dashmap", "either", "iter-enum", - "itertools 0.13.0", + "itertools 0.14.0", "lock_api", "once_cell", "parking_lot", @@ -2440,9 +2329,9 @@ dependencies = [ [[package]] name = "der" -version = "0.7.10" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +checksum = "71fd89660b2dc699704064e59e9dba0147b903e85319429e131620d022be411b" dependencies = [ "const-oid", ] @@ -2457,17 +2346,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "derive_arbitrary" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "derive_builder" version = "0.20.2" @@ -2549,11 +2427,24 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer", - "crypto-common", + "block-buffer 0.10.4", + "crypto-common 0.1.6", "subtle", ] +[[package]] +name = "digest" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" +dependencies = [ + "block-buffer 0.12.0", + "const-oid", + "crypto-common 0.2.2", + "ctutils", + "zeroize", +] + [[package]] name = "dirs" version = "6.0.0" @@ -2601,27 +2492,12 @@ dependencies = [ "const-random", ] -[[package]] -name = "document-features" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" -dependencies = [ - "litrs", -] - [[package]] name = "dotenv" version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" -[[package]] -name = "downcast-rs" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" - [[package]] name = "downcast-rs" version = "2.0.2" @@ -2651,8 +2527,9 @@ checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "dynamic-graphql" -version = "0.10.1" -source = "git+https://github.com/miratepuffin/dynamic-graphql?branch=add-arg-descriptions#69a07c5fe3c16b4baf76f676c96cde5865cae1de" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d58055cecef1736f42bee8819059054e18239cda3d5de56b0c8836c2a2322b" dependencies = [ "async-graphql", "dynamic-graphql-derive", @@ -2661,8 +2538,9 @@ dependencies = [ [[package]] name = "dynamic-graphql-derive" -version = "0.10.1" -source = "git+https://github.com/miratepuffin/dynamic-graphql?branch=add-arg-descriptions#69a07c5fe3c16b4baf76f676c96cde5865cae1de" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff1e2aa3d6affef7ce88263e83c0110b11f57409cf25aa81689bcc5f023a602e" dependencies = [ "Inflector", "darling 0.20.11", @@ -2675,15 +2553,9 @@ dependencies = [ [[package]] name = "either" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" - -[[package]] -name = "encode_unicode" -version = "1.0.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" +checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e" [[package]] name = "encoding_rs" @@ -2695,10 +2567,13 @@ dependencies = [ ] [[package]] -name = "endian-type" -version = "0.1.2" +name = "encoding_rs_io" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" +checksum = "1cc3c5651fb62ab8aa3103998dade57efdd028544bd300516baa31840c252a83" +dependencies = [ + "encoding_rs", +] [[package]] name = "env_filter" @@ -2709,19 +2584,6 @@ dependencies = [ "log", ] -[[package]] -name = "env_logger" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" -dependencies = [ - "humantime", - "is-terminal", - "log", - "regex", - "termcolor", -] - [[package]] name = "env_logger" version = "0.11.10" @@ -2740,6 +2602,17 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +[[package]] +name = "erased-serde" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" +dependencies = [ + "serde", + "serde_core", + "typeid", +] + [[package]] name = "errno" version = "0.3.14" @@ -2750,12 +2623,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "error-code" -version = "3.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dea2df4cf52843e0452895c455a1a2cfbb842a1e7329671acf418fdc53ed4c59" - [[package]] name = "ethnum" version = "1.5.2" @@ -2796,13 +2663,14 @@ dependencies = [ [[package]] name = "fake" -version = "3.1.0" +version = "5.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aef603df4ba9adbca6a332db7da6f614f21eafefbaf8e087844e452fdec152d0" +checksum = "ea6be833b323a56361118a747470a45a1bcd5c52a2ec9b1e40c83dafe687e453" dependencies = [ "chrono", "deunicode", - "rand 0.8.5", + "either", + "rand 0.10.1", ] [[package]] @@ -2832,17 +2700,6 @@ version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" -[[package]] -name = "fd-lock" -version = "4.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce92ff622d6dadf7349484f42c93271a0d49b7cc4d466a936405bacbe10aa78" -dependencies = [ - "cfg-if", - "rustix 1.1.4", - "windows-sys 0.59.0", -] - [[package]] name = "find-msvc-tools" version = "0.1.9" @@ -2861,7 +2718,7 @@ version = "25.12.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35f6839d7b3b98adde531effaf34f0c2badc6f4735d26fe74709d8e513a96ef3" dependencies = [ - "bitflags", + "bitflags 2.11.1", "rustc_version", ] @@ -2905,12 +2762,12 @@ dependencies = [ [[package]] name = "fs4" -version = "0.8.4" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7e180ac76c23b45e767bd7ae9579bc0bb458618c4bc71835926e098e61d15f8" +checksum = "8640e34b88f7652208ce9e88b1a37a2ae95227d84abec377ccd3c5cfeb141ed4" dependencies = [ - "rustix 0.38.44", - "windows-sys 0.52.0", + "rustix", + "windows-sys 0.59.0", ] [[package]] @@ -2921,9 +2778,9 @@ checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" [[package]] name = "fsst" -version = "4.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2195cc7f87e84bd695586137de99605e7e9579b26ec5e01b82960ddb4d0922f2" +checksum = "bcd0ce0249ac12fd44fcde62d435c36d881952c2f0df4d1de24b45e1dbba5ddb" dependencies = [ "arrow-array", "rand 0.9.4", @@ -3107,17 +2964,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if", + "js-sys", "libc", "r-efi 6.0.0", + "rand_core 0.10.1", "wasip2", "wasip3", + "wasm-bindgen", ] [[package]] name = "glam" -version = "0.29.3" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8babf46d4c1c9d92deac9f7be466f76dfc4482b6452fc5024b5e8daf6ffeb3ee" +checksum = "8fb167719045debebe9f532320accc7b5c993c5a3b813f5696a11d5ca7bdc57b" [[package]] name = "glob" @@ -3184,10 +3044,6 @@ name = "hashbrown" version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "allocator-api2", -] [[package]] name = "hashbrown" @@ -3195,8 +3051,6 @@ version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ - "allocator-api2", - "equivalent", "foldhash 0.1.5", ] @@ -3213,17 +3067,22 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.17.0" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash 0.2.0", +] [[package]] name = "hashlink" -version = "0.8.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" +checksum = "ea0b22561a9c04a7cb1a302c013e0259cd3b4bb619f145b32f72b8b4bcbed230" dependencies = [ - "hashbrown 0.14.5", + "hashbrown 0.16.1", ] [[package]] @@ -3232,13 +3091,13 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3314d5adb5d94bcdf56771f2e50dbbc80bb4bdf88967526706205ac9eff24eb" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "headers-core", "http", "httpdate", "mime", - "sha1", + "sha1 0.10.6", ] [[package]] @@ -3268,7 +3127,7 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad82d6598ccf1dac15c8b758a1bd282b755b6776be600429176757190a1b0202" dependencies = [ - "bitflags", + "bitflags 2.11.1", "byteorder", "heed-traits", "heed-types", @@ -3293,7 +3152,7 @@ version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c255bdf46e07fb840d120a36dcc81f385140d7191c76a7391672675c01a55d" dependencies = [ - "bincode 1.3.3", + "bincode", "byteorder", "heed-traits", "serde", @@ -3314,20 +3173,11 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - -[[package]] -name = "home" -version = "0.5.12" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" +checksum = "6303bc9732ae41b04cb554b844a762b4115a61bfaa81e3e83050991eeb56863f" dependencies = [ - "windows-sys 0.61.2", + "digest 0.11.3", ] [[package]] @@ -3387,6 +3237,15 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" +[[package]] +name = "hybrid-array" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9155a582abd142abc056962c29e3ce5ff2ad5469f4246b537ed42c5deba857da" +dependencies = [ + "typenum", +] + [[package]] name = "hyper" version = "1.9.0" @@ -3423,7 +3282,6 @@ dependencies = [ "tokio", "tokio-rustls", "tower-service", - "webpki-roots 1.0.6", ] [[package]] @@ -3445,7 +3303,7 @@ version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "futures-channel", "futures-util", @@ -3456,7 +3314,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.3", + "socket2", "tokio", "tower-service", "tracing", @@ -3628,7 +3486,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.17.0", + "hashbrown 0.17.1", "rayon", "serde", "serde_core", @@ -3645,24 +3503,11 @@ dependencies = [ [[package]] name = "inout" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" -dependencies = [ - "generic-array", -] - -[[package]] -name = "insta" -version = "1.47.2" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4a6248eb93a4401ed2f37dfe8ea592d3cf05b7cf4f8efa867b6895af7e094e" +checksum = "4250ce6452e92010fdf7268ccc5d14faa80bb12fc741938534c58f16804e03c7" dependencies = [ - "console", - "once_cell", - "serde", - "similar", - "tempfile", + "hybrid-array", ] [[package]] @@ -3672,9 +3517,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", ] [[package]] @@ -3692,6 +3534,17 @@ dependencies = [ "rustversion", ] +[[package]] +name = "io-uring" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d09b98f7eace8982db770e4408e7470b028ce513ac28fecdc6bf4c30fe92b62" +dependencies = [ + "bitflags 2.11.1", + "cfg-if", + "libc", +] + [[package]] name = "ipnet" version = "2.12.0" @@ -3708,17 +3561,6 @@ dependencies = [ "serde", ] -[[package]] -name = "is-terminal" -version = "0.4.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.61.2", -] - [[package]] name = "is_terminal_polyfill" version = "1.70.2" @@ -3736,45 +3578,49 @@ dependencies = [ [[package]] name = "itertools" -version = "0.10.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" dependencies = [ "either", ] [[package]] name = "itertools" -version = "0.12.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" dependencies = [ "either", ] [[package]] -name = "itertools" -version = "0.13.0" +name = "itoa" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -dependencies = [ - "either", -] +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] -name = "itertools" -version = "0.14.0" +name = "jieba-macros" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +checksum = "a29cfc5dcd898604c6f80363411fa6b6b08e27d1d253d6225b9cb6702ea02fc0" dependencies = [ - "either", + "phf_codegen 0.13.1", ] [[package]] -name = "itoa" -version = "1.0.18" +name = "jieba-rs" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" +checksum = "3245d6e9d1d5facbd6a23848d6b67e3439738ccbb4fa5a3d65da315ba1a910a2" +dependencies = [ + "cedarwood", + "jieba-macros", + "phf 0.13.1", + "regex", + "rustc-hash", +] [[package]] name = "jiff" @@ -3817,6 +3663,55 @@ dependencies = [ "jiff-tzdb", ] +[[package]] +name = "jni" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" +dependencies = [ + "cfg-if", + "combine", + "jni-macros", + "jni-sys", + "log", + "simd_cesu8", + "thiserror 2.0.18", + "walkdir", + "windows-link", +] + +[[package]] +name = "jni-macros" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" +dependencies = [ + "proc-macro2", + "quote", + "rustc_version", + "simd_cesu8", + "syn 2.0.117", +] + +[[package]] +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" +dependencies = [ + "jni-sys-macros", +] + +[[package]] +name = "jni-sys-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn 2.0.117", +] + [[package]] name = "jobserver" version = "0.1.34" @@ -3877,7 +3772,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0529410abe238729a60b108898784df8984c87f6054c9c4fcacc47e4803c1ce1" dependencies = [ "aws-lc-rs", - "base64 0.22.1", + "base64", "getrandom 0.2.17", "js-sys", "pem", @@ -3887,6 +3782,15 @@ dependencies = [ "simple_asn1", ] +[[package]] +name = "kanaria" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0f9d9652540055ac4fded998a73aca97d965899077ab1212587437da44196ff" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "kdam" version = "0.6.4" @@ -3900,14 +3804,16 @@ dependencies = [ [[package]] name = "lance" -version = "4.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efe6c3ddd79cdfd2b7e1c23cafae52806906bc40fbd97de9e8cf2f8c7a75fc04" +checksum = "3944aca86f4c78f4da04af1c2bf33e664a2826b7af72972ad200d6b9de59019f" dependencies = [ + "arc-swap", "arrow", "arrow-arith", "arrow-array", "arrow-buffer", + "arrow-cast", "arrow-ipc", "arrow-ord", "arrow-row", @@ -3916,9 +3822,11 @@ dependencies = [ "async-recursion", "async-trait", "async_cell", + "bitpacking", "byteorder", "bytes", "chrono", + "crossbeam-queue", "crossbeam-skiplist", "dashmap", "datafusion", @@ -3942,20 +3850,22 @@ dependencies = [ "lance-linalg", "lance-namespace", "lance-table", + "lance-tokenizer", "log", "moka", "object_store", "permutation", "pin-project", - "prost 0.14.3", - "prost-types 0.14.3", + "prost", + "prost-build", + "prost-types", "rand 0.9.4", - "roaring 0.11.3", + "rayon", + "roaring", "semver", "serde", "serde_json", "snafu 0.9.0", - "tantivy 0.24.2", "tokio", "tokio-stream", "tokio-util", @@ -3966,14 +3876,14 @@ dependencies = [ [[package]] name = "lance-arrow" -version = "4.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d9f5d95bdda2a2b790f1fb8028b5b6dcf661abeb3133a8bca0f3d24b054af87" +checksum = "253f4a0a70580c985b91e65e9ca6cad644825a4078de28d8efbacf3ffbd7ecdc" dependencies = [ "arrow-array", "arrow-buffer", - "arrow-cast", "arrow-data", + "arrow-ipc", "arrow-ord", "arrow-schema", "arrow-select", @@ -3988,9 +3898,9 @@ dependencies = [ [[package]] name = "lance-bitpacking" -version = "4.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f827d6ab9f8f337a9509d5ad66a12f3314db8713868260521c344ef6135eb4e4" +checksum = "80c4d12521b1945041dd515a56aa0854973138e7ac12111c92572e33e4ecb593" dependencies = [ "arrayref", "paste", @@ -3999,9 +3909,9 @@ dependencies = [ [[package]] name = "lance-core" -version = "4.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f1e25df6a79bf72ee6bcde0851f19b1cd36c5848c1b7db83340882d3c9fdecb" +checksum = "13f84020da5a484e2f07dd1796e09785ed7cd889857ebc4cb77e32ef214ee594" dependencies = [ "arrow-array", "arrow-buffer", @@ -4009,7 +3919,6 @@ dependencies = [ "async-trait", "byteorder", "bytes", - "chrono", "datafusion-common", "datafusion-sql", "deepsize", @@ -4018,14 +3927,13 @@ dependencies = [ "lance-arrow", "libc", "log", - "mock_instant", "moka", "num_cpus", "object_store", "pin-project", - "prost 0.14.3", + "prost", "rand 0.9.4", - "roaring 0.11.3", + "roaring", "serde_json", "snafu 0.9.0", "tempfile", @@ -4038,13 +3946,14 @@ dependencies = [ [[package]] name = "lance-datafusion" -version = "4.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93146de8ae720cb90edef81c2f2d0a1b065fc2f23ecff2419546f389b0fa70a4" +checksum = "7460597a66534a75987993d4dac5bc330586d99c5b79ae73367dbcbd4e29e576" dependencies = [ "arrow", "arrow-array", "arrow-buffer", + "arrow-cast", "arrow-ord", "arrow-schema", "arrow-select", @@ -4061,18 +3970,17 @@ dependencies = [ "lance-datagen", "log", "pin-project", - "prost 0.14.3", - "prost-build 0.14.3", - "snafu 0.9.0", + "prost", + "prost-build", "tokio", "tracing", ] [[package]] name = "lance-datagen" -version = "4.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccec8ce4d8e0a87a99c431dab2364398029f2ffb649c1a693c60c79e05ed30dd" +checksum = "046f5506ed2271cd941a050de7bf535dd3aedc291aadec836a63fa56c5926e3b" dependencies = [ "arrow", "arrow-array", @@ -4083,16 +3991,16 @@ dependencies = [ "half", "hex", "rand 0.9.4", - "rand_distr 0.5.1", + "rand_distr", "rand_xoshiro", "random_word", ] [[package]] name = "lance-encoding" -version = "4.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c1aec0bbbac6bce829bc10f1ba066258126100596c375fb71908ecf11c2c2a5" +checksum = "7af54edf43dcf9d6a56cc636eb35d457e68373c6448dca3f0891b3325b4a24e6" dependencies = [ "arrow-arith", "arrow-array", @@ -4115,11 +4023,9 @@ dependencies = [ "log", "lz4", "num-traits", - "prost 0.14.3", - "prost-build 0.14.3", - "prost-types 0.14.3", + "prost", + "prost-build", "rand 0.9.4", - "snafu 0.9.0", "strum 0.26.3", "tokio", "tracing", @@ -4129,9 +4035,9 @@ dependencies = [ [[package]] name = "lance-file" -version = "4.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14a8c548804f5b17486dc2d3282356ed1957095a852780283bc401fdd69e9075" +checksum = "0772ae2d6207995dc1eb28aff9507f78e90b3362b58f311da001e9dc25f3d736" dependencies = [ "arrow-arith", "arrow-array", @@ -4153,20 +4059,20 @@ dependencies = [ "log", "num-traits", "object_store", - "prost 0.14.3", - "prost-build 0.14.3", - "prost-types 0.14.3", - "snafu 0.9.0", + "prost", + "prost-build", + "prost-types", "tokio", "tracing", ] [[package]] name = "lance-index" -version = "4.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2da212f0090ea59f79ac3686660f596520c167fe1cb5f408900cf71d215f0e03" +checksum = "e71fbfb51096a903cb524fe0da716f5f15fbc4a6b6f84cd6dec21abf319c5e84" dependencies = [ + "arc-swap", "arrow", "arrow-arith", "arrow-array", @@ -4185,13 +4091,13 @@ dependencies = [ "datafusion-common", "datafusion-expr", "datafusion-physical-expr", - "datafusion-sql", "deepsize", "dirs", "fst", "futures", "half", "itertools 0.13.0", + "jieba-rs", "jsonb", "lance-arrow", "lance-core", @@ -4202,24 +4108,23 @@ dependencies = [ "lance-io", "lance-linalg", "lance-table", + "lance-tokenizer", "libm", "log", "ndarray 0.16.1", "num-traits", "object_store", - "prost 0.14.3", - "prost-build 0.14.3", - "prost-types 0.14.3", + "prost", + "prost-build", + "prost-types", "rand 0.9.4", - "rand_distr 0.5.1", + "rand_distr", "rangemap", "rayon", - "roaring 0.11.3", + "roaring", "serde", "serde_json", "smallvec", - "snafu 0.9.0", - "tantivy 0.24.2", "tempfile", "tokio", "tracing", @@ -4229,9 +4134,9 @@ dependencies = [ [[package]] name = "lance-io" -version = "4.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d958eb4b56f03bbe0f5f85eb2b4e9657882812297b6f711f201ffc995f259f" +checksum = "bab8c98ef1b870b20541d27f3ca4efdf7c9f5c25214233be07d231ba88900219" dependencies = [ "arrow", "arrow-arith", @@ -4249,17 +4154,18 @@ dependencies = [ "deepsize", "futures", "http", + "io-uring", "lance-arrow", "lance-core", "lance-namespace", "log", + "moka", "object_store", "path_abs", "pin-project", - "prost 0.14.3", + "prost", "rand 0.9.4", "serde", - "snafu 0.9.0", "tempfile", "tokio", "tracing", @@ -4268,9 +4174,9 @@ dependencies = [ [[package]] name = "lance-linalg" -version = "4.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0285b70da35def7ed95e150fae1d5308089554e1290470403ed3c50cb235bc5e" +checksum = "6b4c51cad0ac780b02dc4da48528479e7693c03e8d05390510bbc69ca2a9a1f1" dependencies = [ "arrow-array", "arrow-buffer", @@ -4286,65 +4192,64 @@ dependencies = [ [[package]] name = "lance-namespace" -version = "4.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f78e2a828b654e062a495462c6e3eb4fcf0e7e907d761b8f217fc09ccd3ceac" +checksum = "014e8332ca0615506342e0d3af608639864b68396973be14239f09c9f21f1fc2" dependencies = [ "arrow", "async-trait", "bytes", "lance-core", "lance-namespace-reqwest-client", - "serde", "snafu 0.9.0", ] [[package]] name = "lance-namespace-impls" -version = "4.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2392314f3da38f00d166295e44244208a65ccfc256e274fa8631849fc3f4d94" +checksum = "e8d1231906a3cf92dd3dcda7d14a09c4835af6cd2bcd76dfd2481e87f20a282d" dependencies = [ "arrow", "arrow-ipc", "arrow-schema", "async-trait", "bytes", - "chrono", "futures", "lance", "lance-core", "lance-index", "lance-io", + "lance-linalg", "lance-namespace", "lance-table", "log", "object_store", "rand 0.9.4", "serde_json", - "snafu 0.9.0", "tokio", "url", ] [[package]] name = "lance-namespace-reqwest-client" -version = "0.6.1" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2e48de899e2931afb67fcddd0a08e439bf5d8b6ea2a2ed9cb8f4df669bd5cc" +checksum = "6369eee4682fb11edf538388b43c61ce288b8302fe89bb40944d7daa7faaae99" dependencies = [ - "reqwest", + "reqwest 0.12.28", "serde", "serde_json", "serde_repr", + "serde_with", "url", ] [[package]] name = "lance-table" -version = "4.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3df9c4adca3eb2074b3850432a9fb34248a3d90c3d6427d158b13ff9355664ee" +checksum = "b16f1355904aea4ebb04ffc70c58c97901e10bde44452b4b021de4a1f329250d" dependencies = [ "arrow", "arrow-array", @@ -4363,12 +4268,12 @@ dependencies = [ "lance-io", "log", "object_store", - "prost 0.14.3", - "prost-build 0.14.3", - "prost-types 0.14.3", + "prost", + "prost-build", + "prost-types", "rand 0.9.4", "rangemap", - "roaring 0.11.3", + "roaring", "semver", "serde", "serde_json", @@ -4381,9 +4286,9 @@ dependencies = [ [[package]] name = "lance-testing" -version = "4.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ed7119bdd6983718387b4ac44af873a165262ca94f181b104cd6f97912eb3bf" +checksum = "3094c2aacbd1fa093d809fc54fa911e3498671ba451041341d7caaa18460e6b2" dependencies = [ "arrow-array", "arrow-schema", @@ -4392,11 +4297,24 @@ dependencies = [ "rand 0.9.4", ] +[[package]] +name = "lance-tokenizer" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39b7f5ed9d0c0b716bf599b559d888267ed1dfe4c4e29d3648b51d2a28940cf" +dependencies = [ + "jieba-rs", + "lindera", + "rust-stemmers", + "serde", + "unicode-normalization", +] + [[package]] name = "lancedb" -version = "0.27.2" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce0f4d7f739dc30608fe8b202cbb40986c2937e1a5a189f98fb06d7b8543156a" +checksum = "9db595d8da6c1fbf41ef6a547f27a73cc1105d83a837e8c76ce08743a3c09260" dependencies = [ "ahash", "arrow", @@ -4529,6 +4447,12 @@ dependencies = [ "lexical-util", ] +[[package]] +name = "libbz2-rs-sys" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34b357333733e8260735ba5894eb928c02ecc69c78715f01a8019e7fa7f2db4c" + [[package]] name = "libc" version = "0.2.185" @@ -4551,10 +4475,58 @@ dependencies = [ ] [[package]] -name = "linux-raw-sys" -version = "0.4.15" +name = "lindera" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74cda79d7161e99b414e4d292ff673cc3f8d22f070d8be3b6185c033363a9216" +dependencies = [ + "anyhow", + "byteorder", + "csv", + "daachorse", + "kanaria", + "lindera-dictionary", + "log", + "once_cell", + "percent-encoding", + "regex", + "serde", + "serde_json", + "serde_yaml_ng", + "strum 0.28.0", + "strum_macros 0.28.0", + "unicode-blocks", + "unicode-normalization", + "unicode-segmentation", + "url", +] + +[[package]] +name = "lindera-dictionary" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" +checksum = "e2385456ca9fe87c29072c5f156b52fdd5e28d5b5738ddfb3979501dbd736530" +dependencies = [ + "anyhow", + "byteorder", + "csv", + "daachorse", + "derive_builder", + "encoding_rs", + "encoding_rs_io", + "glob", + "log", + "memmap2", + "num_cpus", + "once_cell", + "regex", + "rkyv", + "serde", + "serde_json", + "strum 0.28.0", + "strum_macros 0.28.0", + "thiserror 2.0.18", +] [[package]] name = "linux-raw-sys" @@ -4568,12 +4540,6 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" -[[package]] -name = "litrs" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" - [[package]] name = "lmdb-master-sys" version = "0.2.6" @@ -4616,11 +4582,11 @@ dependencies = [ [[package]] name = "lru" -version = "0.12.5" +version = "0.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" +checksum = "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39" dependencies = [ - "hashbrown 0.15.5", + "hashbrown 0.16.1", ] [[package]] @@ -4650,38 +4616,20 @@ dependencies = [ [[package]] name = "lz4_flex" -version = "0.11.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373f5eceeeab7925e0c1098212f2fbc4d416adec9d35051a6ab251e824c1854a" - -[[package]] -name = "lz4_flex" -version = "0.12.1" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98c23545df7ecf1b16c303910a69b079e8e251d60f7dd2cc9b4177f2afaf1746" +checksum = "7ef0d4ed8669f8f8826eb00dc878084aa8f253506c4fd5e8f58f5bce72ddb97e" dependencies = [ "twox-hash", ] [[package]] -name = "lzma-rs" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "297e814c836ae64db86b36cf2a557ba54368d03f6afcd7d947c266692f71115e" -dependencies = [ - "byteorder", - "crc", -] - -[[package]] -name = "lzma-sys" -version = "0.1.20" +name = "lzma-rust2" +version = "0.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27" +checksum = "ce716bf1a316f47a280fc76295f6495b5bea4752bca01c3b3885e101b1c23c02" dependencies = [ - "cc", - "libc", - "pkg-config", + "sha2 0.11.0", ] [[package]] @@ -4708,12 +4656,6 @@ dependencies = [ "regex-automata", ] -[[package]] -name = "matchit" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" - [[package]] name = "matchit" version = "0.8.4" @@ -4740,17 +4682,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" dependencies = [ "cfg-if", - "digest", -] - -[[package]] -name = "measure_time" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbefd235b0aadd181626f281e1d684e116972988c14c264e42069d5e8a5775cc" -dependencies = [ - "instant", - "log", + "digest 0.10.7", ] [[package]] @@ -4783,15 +4715,6 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38d1115007560874e373613744c6fba374c17688327a71c1476d1a5954cc857b" -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - [[package]] name = "mime" version = "0.3.17" @@ -4856,12 +4779,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "mock_instant" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce6dd36094cac388f119d2e9dc82dc730ef91c32a6222170d630e5414b956e6" - [[package]] name = "moka" version = "0.12.15" @@ -4905,6 +4822,26 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" +[[package]] +name = "munge" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e17401f259eba956ca16491461b6e8f72913a0a114e39736ce404410f915a0c" +dependencies = [ + "munge_macro", +] + +[[package]] +name = "munge_macro" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "murmurhash32" version = "0.3.1" @@ -4979,33 +4916,13 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "nibble_vec" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" -dependencies = [ - "smallvec", -] - -[[package]] -name = "nix" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" -dependencies = [ - "bitflags", - "cfg-if", - "libc", -] - [[package]] name = "nix" version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ - "bitflags", + "bitflags 2.11.1", "cfg-if", "cfg_aliases", "libc", @@ -5146,9 +5063,9 @@ dependencies = [ [[package]] name = "numpy" -version = "0.27.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aac2e6a6e4468ffa092ad43c39b81c79196c2bb773b8db4085f695efe3bba17" +checksum = "778da78c64ddc928ebf5ad9df5edf0789410ff3bdbf3619aed51cd789a6af1e2" dependencies = [ "half", "libc", @@ -5158,19 +5075,21 @@ dependencies = [ "num-traits", "pyo3", "pyo3-build-config", - "rustc-hash 2.1.2", + "rustc-hash", ] [[package]] name = "object_store" -version = "0.12.5" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbfbfff40aeccab00ec8a910b57ca8ecf4319b335c542f2edcd19dd25a1e2a00" +checksum = "622acbc9100d3c10e2ee15804b0caa40e55c933d5aa53814cd520805b7958a49" dependencies = [ "async-trait", "bytes", "chrono", - "futures", + "futures-channel", + "futures-core", + "futures-util", "http", "humantime", "itertools 0.14.0", @@ -5223,81 +5142,79 @@ checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" [[package]] name = "opentelemetry" -version = "0.27.1" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab70038c28ed37b97d8ed414b6429d343a8bbf44c9f79ec854f3a643029ba6d7" +checksum = "b0142c63252a9e054e68a4c61a5778f7b14f576274d593f8ce883d191a099682" dependencies = [ "futures-core", "futures-sink", "js-sys", "pin-project-lite", - "thiserror 1.0.69", + "thiserror 2.0.18", "tracing", ] [[package]] -name = "opentelemetry-otlp" -version = "0.27.0" +name = "opentelemetry-http" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91cf61a1868dacc576bf2b2a1c3e9ab150af7272909e80085c3173384fe11f76" +checksum = "5683015d09e2df236ef005b17f6f196f0d5f6313c4fa43a7b6a53b52776e4331" dependencies = [ "async-trait", - "futures-core", + "bytes", + "http", + "opentelemetry", + "reqwest 0.13.4", +] + +[[package]] +name = "opentelemetry-otlp" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9966929966d17620d7c316c643ba62631826e10021409357772d5eea84f62c35" +dependencies = [ "http", "opentelemetry", + "opentelemetry-http", "opentelemetry-proto", "opentelemetry_sdk", - "prost 0.13.5", - "thiserror 1.0.69", + "prost", + "reqwest 0.13.4", + "thiserror 2.0.18", "tokio", "tonic", - "tracing", + "tonic-types", ] [[package]] name = "opentelemetry-proto" -version = "0.27.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6e05acbfada5ec79023c85368af14abd0b307c015e9064d249b2a950ef459a6" +checksum = "56d658ba1faf63f7b9c492cfbe6e0ec365440a16132d3270c1065f7b33f1b638" dependencies = [ "opentelemetry", "opentelemetry_sdk", - "prost 0.13.5", + "prost", "tonic", + "tonic-prost", ] [[package]] name = "opentelemetry_sdk" -version = "0.27.1" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "231e9d6ceef9b0b2546ddf52335785ce41252bc7474ee8ba05bfad277be13ab8" +checksum = "9b59f80e1ac4d5ff7a2db8fb6c80badb7f0f3f858211fba08dd9aaec750894f9" dependencies = [ - "async-trait", "futures-channel", "futures-executor", "futures-util", - "glob", "opentelemetry", "percent-encoding", - "rand 0.8.5", - "serde_json", - "thiserror 1.0.69", + "portable-atomic", + "rand 0.9.4", + "thiserror 2.0.18", "tokio", "tokio-stream", - "tracing", -] - -[[package]] -name = "optd-core" -version = "0.18.0" -dependencies = [ - "anyhow", - "bitvec", - "itertools 0.14.0", - "pretty-xmlish", - "snafu 0.8.9", - "tokio", - "tracing", ] [[package]] @@ -5315,15 +5232,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "ordered-float" -version = "4.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" -dependencies = [ - "num-traits", -] - [[package]] name = "ordered-float" version = "5.3.0" @@ -5367,15 +5275,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "ownedbytes" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3a059efb063b8f425b948e042e6b9bd85edfe60e913630ed727b23e2dfcc558" -dependencies = [ - "stable_deref_trait", -] - [[package]] name = "ownedbytes" version = "0.9.0" @@ -5426,26 +5325,25 @@ dependencies = [ [[package]] name = "parquet" -version = "57.3.0" +version = "58.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ee96b29972a257b855ff2341b37e61af5f12d6af1158b6dcdb5b31ea07bb3cb" +checksum = "5dafa7d01085b62a47dd0c1829550a0a36710ea9c4fe358a05a85477cec8a908" dependencies = [ "ahash", "arrow-array", "arrow-buffer", - "arrow-cast", "arrow-data", "arrow-ipc", "arrow-schema", "arrow-select", - "base64 0.22.1", + "base64", "brotli", "bytes", "chrono", "flate2", "half", - "hashbrown 0.16.1", - "lz4_flex 0.12.1", + "hashbrown 0.17.1", + "lz4_flex", "num-bigint", "num-integer", "num-traits", @@ -5493,11 +5391,11 @@ checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" [[package]] name = "pbkdf2" -version = "0.12.2" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +checksum = "112d82ceb8c5bf524d9af484d4e4970c9fd5a0cc15ba14ad93dccd28873b0629" dependencies = [ - "digest", + "digest 0.11.3", "hmac", ] @@ -5507,7 +5405,7 @@ version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" dependencies = [ - "base64 0.22.1", + "base64", "serde_core", ] @@ -5563,17 +5461,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89815c69d36021a140146f26659a81d6c2afa33d216d736dd4be5381a7362220" dependencies = [ "pest", - "sha2", -] - -[[package]] -name = "petgraph" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" -dependencies = [ - "fixedbitset", - "indexmap 2.14.0", + "sha2 0.10.9", ] [[package]] @@ -5607,16 +5495,36 @@ dependencies = [ "phf_shared 0.12.1", ] +[[package]] +name = "phf" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" +dependencies = [ + "phf_shared 0.13.1", + "serde", +] + [[package]] name = "phf_codegen" version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" dependencies = [ - "phf_generator", + "phf_generator 0.11.3", "phf_shared 0.11.3", ] +[[package]] +name = "phf_codegen" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1" +dependencies = [ + "phf_generator 0.13.1", + "phf_shared 0.13.1", +] + [[package]] name = "phf_generator" version = "0.11.3" @@ -5627,13 +5535,23 @@ dependencies = [ "rand 0.8.5", ] +[[package]] +name = "phf_generator" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" +dependencies = [ + "fastrand", + "phf_shared 0.13.1", +] + [[package]] name = "phf_macros" version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" dependencies = [ - "phf_generator", + "phf_generator 0.11.3", "phf_shared 0.11.3", "proc-macro2", "quote", @@ -5658,6 +5576,15 @@ dependencies = [ "siphasher", ] +[[package]] +name = "phf_shared" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" +dependencies = [ + "siphasher", +] + [[package]] name = "pin-project" version = "1.1.11" @@ -5725,7 +5652,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f977080932c87287147dca052951c3e2696f8759863f6b4e4c0c9ffe7a4cc8b" dependencies = [ "async-compression", - "base64 0.22.1", + "base64", "bytes", "futures-util", "headers", @@ -5737,7 +5664,7 @@ dependencies = [ "hyper-util", "mime", "mime_guess", - "nix 0.30.1", + "nix", "parking_lot", "percent-encoding", "pin-project-lite", @@ -5780,7 +5707,7 @@ dependencies = [ "concurrent-queue", "hermit-abi", "pin-project-lite", - "rustix 1.1.4", + "rustix", "windows-sys 0.61.2", ] @@ -5814,6 +5741,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" +[[package]] +name = "ppmd-rust" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efca4c95a19a79d1c98f791f10aebd5c1363b473244630bb7dbde1dc98455a24" + [[package]] name = "ppv-lite86" version = "0.2.21" @@ -5823,12 +5756,6 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "pretty-xmlish" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b8aab53732b7a9c5c39bb0e130f85671b48b188ef258c3b9f7f5da1877382a" - [[package]] name = "pretty_assertions" version = "1.4.1" @@ -5855,7 +5782,7 @@ version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit 0.25.11+spec-1.1.0", + "toml_edit", ] [[package]] @@ -5888,7 +5815,7 @@ checksum = "4b45fcc2344c680f5025fe57779faef368840d0bd1f42f216291f0dc4ace4744" dependencies = [ "bit-set", "bit-vec", - "bitflags", + "bitflags 2.11.1", "num-traits", "rand 0.9.4", "rand_chacha 0.9.0", @@ -5901,25 +5828,15 @@ dependencies = [ [[package]] name = "proptest-derive" -version = "0.6.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "095a99f75c69734802359b682be8daaf8980296731f6470434ea2c652af1dd30" +checksum = "c57924a81864dddafba92e1bf92f9bf82f97096c44489548a60e888e1547549b" dependencies = [ "proc-macro2", "quote", "syn 2.0.117", ] -[[package]] -name = "prost" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" -dependencies = [ - "bytes", - "prost-derive 0.13.5", -] - [[package]] name = "prost" version = "0.14.3" @@ -5927,27 +5844,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2ea70524a2f82d518bce41317d0fae74151505651af45faf1ffbd6fd33f0568" dependencies = [ "bytes", - "prost-derive 0.14.3", -] - -[[package]] -name = "prost-build" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" -dependencies = [ - "heck 0.5.0", - "itertools 0.14.0", - "log", - "multimap", - "once_cell", - "petgraph 0.7.1", - "prettyplease", - "prost 0.13.5", - "prost-types 0.13.5", - "regex", - "syn 2.0.117", - "tempfile", + "prost-derive", ] [[package]] @@ -5960,10 +5857,10 @@ dependencies = [ "itertools 0.14.0", "log", "multimap", - "petgraph 0.8.3", + "petgraph", "prettyplease", - "prost 0.14.3", - "prost-types 0.14.3", + "prost", + "prost-types", "regex", "syn 2.0.117", "tempfile", @@ -5971,9 +5868,9 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.13.5" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" +checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b" dependencies = [ "anyhow", "itertools 0.14.0", @@ -5983,62 +5880,57 @@ dependencies = [ ] [[package]] -name = "prost-derive" +name = "prost-types" version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b" +checksum = "8991c4cbdb8bc5b11f0b074ffe286c30e523de90fee5ba8132f1399f23cb3dd7" dependencies = [ - "anyhow", - "itertools 0.14.0", - "proc-macro2", - "quote", - "syn 2.0.117", + "prost", ] [[package]] -name = "prost-types" -version = "0.13.5" +name = "ptr_meta" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" +checksum = "0b9a0cf95a1196af61d4f1cbdab967179516d9a4a4312af1f31948f8f6224a79" dependencies = [ - "prost 0.13.5", + "ptr_meta_derive", ] [[package]] -name = "prost-types" -version = "0.14.3" +name = "ptr_meta_derive" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8991c4cbdb8bc5b11f0b074ffe286c30e523de90fee5ba8132f1399f23cb3dd7" +checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" dependencies = [ - "prost 0.14.3", + "proc-macro2", + "quote", + "syn 2.0.117", ] [[package]] name = "pyo3" -version = "0.27.2" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab53c047fcd1a1d2a8820fe84f05d6be69e9526be40cb03b73f86b6b03e6d87d" +checksum = "91fd8e38a3b50ed1167fb981cd6fd60147e091784c427b8f7183a7ee32c31c12" dependencies = [ "chrono", "chrono-tz 0.10.4", "indexmap 2.14.0", - "indoc", "inventory", "libc", - "memoffset", "once_cell", "portable-atomic", "pyo3-build-config", "pyo3-ffi", "pyo3-macros", - "unindent", ] [[package]] name = "pyo3-arrow" -version = "0.15.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36b9f03cb749b0326951ebb30e39eda2f32b0b9205dce67e947e65779b8faffc" +checksum = "0360400036dda3db3d69102ef7e9646e4cd946c75a2d1d41fb8fd39879312636" dependencies = [ "arrow-array", "arrow-buffer", @@ -6057,18 +5949,18 @@ dependencies = [ [[package]] name = "pyo3-build-config" -version = "0.27.2" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b455933107de8642b4487ed26d912c2d899dec6114884214a0b3bb3be9261ea6" +checksum = "e368e7ddfdeb98c9bca7f8383be1648fd84ab466bf2bc015e94008db6d35611e" dependencies = [ "target-lexicon", ] [[package]] name = "pyo3-ffi" -version = "0.27.2" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c85c9cbfaddf651b1221594209aed57e9e5cff63c4d11d1feead529b872a089" +checksum = "7f29e10af80b1f7ccaf7f69eace800a03ecd13e883acfacc1e5d0988605f651e" dependencies = [ "libc", "pyo3-build-config", @@ -6076,9 +5968,9 @@ dependencies = [ [[package]] name = "pyo3-macros" -version = "0.27.2" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a5b10c9bf9888125d917fb4d2ca2d25c8df94c7ab5a52e13313a07e050a3b02" +checksum = "df6e520eff47c45997d2fc7dd8214b25dd1310918bbb2642156ef66a67f29813" dependencies = [ "proc-macro2", "pyo3-macros-backend", @@ -6088,9 +5980,9 @@ dependencies = [ [[package]] name = "pyo3-macros-backend" -version = "0.27.2" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03b51720d314836e53327f5871d4c0cfb4fb37cc2c4a11cc71907a86342c40f9" +checksum = "c4cdc218d835738f81c2338f822078af45b4afdf8b2e33cbb5916f108b813acb" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -6101,9 +5993,9 @@ dependencies = [ [[package]] name = "pythonize" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3a8f29db331e28c332c63496cfcbb822aca3d7320bc08b655d7fd0c29c50ede" +checksum = "0b79f670c9626c8b651c0581011b57b6ba6970bb69faf01a7c4c0cfc81c43f95" dependencies = [ "pyo3", "serde", @@ -6121,6 +6013,18 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +[[package]] +name = "quick_cache" +version = "0.6.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a3db184a8b66cfe87f0263a1de147a6b554c864d1767c6f7fa4eb0e5497b565" +dependencies = [ + "ahash", + "equivalent", + "hashbrown 0.16.1", + "parking_lot", +] + [[package]] name = "quinn" version = "0.11.9" @@ -6132,9 +6036,9 @@ dependencies = [ "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash 2.1.2", + "rustc-hash", "rustls", - "socket2 0.6.3", + "socket2", "thiserror 2.0.18", "tokio", "tracing", @@ -6147,12 +6051,13 @@ version = "0.11.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" dependencies = [ + "aws-lc-rs", "bytes", "getrandom 0.3.4", "lru-slab", "rand 0.9.4", "ring", - "rustc-hash 2.1.2", + "rustc-hash", "rustls", "rustls-pki-types", "slab", @@ -6171,7 +6076,7 @@ dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.6.3", + "socket2", "tracing", "windows-sys 0.60.2", ] @@ -6204,13 +6109,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" [[package]] -name = "radix_trie" -version = "0.2.1" +name = "rancor" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" +checksum = "a063ea72381527c2a0561da9c80000ef822bdd7c3241b1cc1b12100e3df081ee" dependencies = [ - "endian-type", - "nibble_vec", + "ptr_meta", ] [[package]] @@ -6234,6 +6138,17 @@ dependencies = [ "rand_core 0.9.5", ] +[[package]] +name = "rand" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207" +dependencies = [ + "chacha20", + "getrandom 0.4.2", + "rand_core 0.10.1", +] + [[package]] name = "rand_chacha" version = "0.3.1" @@ -6273,14 +6188,10 @@ dependencies = [ ] [[package]] -name = "rand_distr" -version = "0.4.3" +name = "rand_core" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" -dependencies = [ - "num-traits", - "rand 0.8.5", -] +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" [[package]] name = "rand_distr" @@ -6342,11 +6253,10 @@ dependencies = [ "arrow-select", "async-openai", "async-trait", - "axum 0.8.9", + "axum", "bigdecimal", - "bincode 2.0.1", "bytemuck", - "bzip2 0.4.4", + "bzip2", "chrono", "crossbeam-channel", "csv", @@ -6363,15 +6273,14 @@ dependencies = [ "flate2", "futures-util", "glam", - "hashbrown 0.14.5", + "hashbrown 0.17.1", "heed", "indexmap 2.14.0", "indoc", "iter-enum", - "itertools 0.13.0", + "itertools 0.14.0", "kdam", "lancedb", - "memmap2", "minijinja", "minijinja-contrib", "moka", @@ -6381,38 +6290,33 @@ dependencies = [ "num-traits", "numpy", "once_cell", - "ordered-float 4.6.0", + "ordered-float 5.3.0", "ouroboros", "parking_lot", "parquet", - "pretty_assertions", "proptest", - "proptest-derive", - "prost 0.13.5", - "prost-build 0.13.5", - "prost-types 0.13.5", "pyo3", "pyo3-arrow", "pythonize", "quad-rand", + "quick_cache", "rand 0.9.4", - "rand_distr 0.5.1", - "raphtory", + "rand_distr", "raphtory-api", "raphtory-core", "raphtory-itertools", "raphtory-storage", "rayon", "regex", - "reqwest", - "roaring 0.10.12", - "rustc-hash 2.1.2", + "reqwest 0.13.4", + "roaring", + "rustc-hash", "serde", "serde_arrow", "serde_json", "streaming-stats", "strsim", - "tantivy 0.22.1", + "tantivy", "tempfile", "thiserror 2.0.18", "tikv-jemallocator", @@ -6438,7 +6342,7 @@ dependencies = [ "display-error-chain", "indexmap 2.14.0", "iter-enum", - "itertools 0.13.0", + "itertools 0.14.0", "lock_api", "minijinja", "num-traits", @@ -6449,7 +6353,7 @@ dependencies = [ "pyo3-arrow", "rand 0.9.4", "rayon", - "rustc-hash 2.1.2", + "rustc-hash", "serde", "serde_arrow", "serde_json", @@ -6482,7 +6386,7 @@ dependencies = [ "fake", "once_cell", "rand 0.9.4", - "rand_distr 0.5.1", + "rand_distr", "raphtory", "raphtory-api", "rayon", @@ -6504,19 +6408,15 @@ dependencies = [ "chrono", "dashmap", "either", - "hashbrown 0.14.5", "iter-enum", - "itertools 0.13.0", - "lock_api", - "once_cell", + "itertools 0.14.0", "ouroboros", "parking_lot", "proptest", "pyo3", "raphtory-api", - "rayon", "regex", - "rustc-hash 2.1.2", + "rustc-hash", "serde", "thiserror 2.0.18", ] @@ -6526,11 +6426,9 @@ name = "raphtory-graphql" version = "0.18.0" dependencies = [ "ahash", - "arrow-array", "async-graphql", "async-graphql-poem", - "base64 0.22.1", - "base64-compat", + "base64", "bigdecimal", "chrono", "clap", @@ -6538,31 +6436,30 @@ dependencies = [ "crossbeam-channel", "dynamic-graphql", "futures-util", - "itertools 0.13.0", + "itertools 0.14.0", "jsonwebtoken", "minijinja", - "moka", "once_cell", "opentelemetry", "opentelemetry-otlp", "opentelemetry_sdk", - "ordered-float 4.6.0", "parking_lot", "poem", "pretty_assertions", "pyo3", + "quick_cache", "raphtory", "raphtory-api", "raphtory-storage", "rayon", - "reqwest", + "reqwest 0.13.4", "rust-embed", - "rustc-hash 2.1.2", + "rustc-hash", "serde", "serde_json", "spki", - "strum 0.27.2", - "strum_macros 0.27.2", + "strum 0.28.0", + "strum_macros 0.28.0", "tempfile", "thiserror 2.0.18", "tokio", @@ -6579,7 +6476,7 @@ name = "raphtory-itertools" version = "0.18.0" dependencies = [ "criterion", - "itertools 0.13.0", + "itertools 0.14.0", "proptest", "rand 0.9.4", ] @@ -6588,7 +6485,6 @@ dependencies = [ name = "raphtory-pymodule" version = "0.18.0" dependencies = [ - "clam-core", "pyo3", "pyo3-build-config", "raphtory", @@ -6610,24 +6506,42 @@ dependencies = [ name = "raphtory-storage" version = "0.18.0" dependencies = [ - "arrow-array", - "arrow-schema", - "bigdecimal", "db4-graph", "db4-storage", "either", "iter-enum", - "itertools 0.13.0", - "num-traits", + "itertools 0.14.0", "parking_lot", - "proptest", "raphtory-api", "raphtory-api-macros", "raphtory-core", "rayon", + "thiserror 2.0.18", +] + +[[package]] +name = "raphtory-tests" +version = "0.18.0" +dependencies = [ + "ahash", + "arrow", + "bigdecimal", + "chrono", + "db4-storage", + "itertools 0.14.0", + "parquet", + "proptest", + "proptest-derive", + "rand 0.9.4", + "raphtory", + "raphtory-api", + "raphtory-storage", + "rayon", "serde", + "serde_json", "tempfile", - "thiserror 2.0.18", + "tracing", + "zip", ] [[package]] @@ -6684,7 +6598,7 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags", + "bitflags 2.11.1", ] [[package]] @@ -6747,16 +6661,24 @@ version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" +[[package]] +name = "rend" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cadadef317c2f20755a64d7fdc48f9e7178ee6b0e1f7fce33fa60f1d68a276e6" +dependencies = [ + "bytecheck", +] + [[package]] name = "reqwest" version = "0.12.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "encoding_rs", - "futures-channel", "futures-core", "futures-util", "h2", @@ -6783,7 +6705,7 @@ dependencies = [ "tokio", "tokio-rustls", "tokio-util", - "tower 0.5.3", + "tower", "tower-http", "tower-service", "url", @@ -6791,7 +6713,46 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 1.0.6", +] + +[[package]] +name = "reqwest" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3" +dependencies = [ + "base64", + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-util", + "js-sys", + "log", + "mime_guess", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-pki-types", + "rustls-platform-verifier", + "serde", + "serde_json", + "sync_wrapper", + "tokio", + "tokio-rustls", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", ] [[package]] @@ -6806,7 +6767,7 @@ dependencies = [ "mime", "nom 7.1.3", "pin-project-lite", - "reqwest", + "reqwest 0.12.28", "thiserror 1.0.69", ] @@ -6840,20 +6801,40 @@ dependencies = [ ] [[package]] -name = "roaring" -version = "0.10.12" +name = "rkyv" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e8d2cfa184d94d0726d650a9f4a1be7f9b76ac9fdb954219878dc00c1c1e7b" +checksum = "73389e0c99e664f919275ab5b5b0471391fe9a8de61e1dff9b1eaf56a90f16e3" dependencies = [ - "bytemuck", - "byteorder", + "bytecheck", + "bytes", + "hashbrown 0.17.1", + "indexmap 2.14.0", + "munge", + "ptr_meta", + "rancor", + "rend", + "rkyv_derive", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d2ed0b54125315fb36bd021e82d314d1c126548f871634b483f46b31d13cac6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", ] [[package]] name = "roaring" -version = "0.11.3" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ba9ce64a8f45d7fc86358410bb1a82e8c987504c0d4900e9141d69a9f26c885" +checksum = "1dedc5658c6ecb3bdb5ef5f3295bb9253f42dcf3fd1402c03f6b1f7659c3c4a9" dependencies = [ "bytemuck", "byteorder", @@ -6861,14 +6842,16 @@ dependencies = [ [[package]] name = "ron" -version = "0.8.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" +checksum = "4147b952f3f819eca0e99527022f7d6a8d05f111aeb0a62960c74eb283bec8fc" dependencies = [ - "base64 0.21.7", - "bitflags", + "bitflags 2.11.1", + "once_cell", "serde", "serde_derive", + "typeid", + "unicode-ident", ] [[package]] @@ -6902,7 +6885,7 @@ version = "8.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5bcdef0be6fe7f6fa333b1073c949729274b05f123a0ad7efcb8efd878e5c3b1" dependencies = [ - "sha2", + "sha2 0.10.9", "walkdir", ] @@ -6911,7 +6894,7 @@ name = "rust-examples" version = "0.18.0" dependencies = [ "chrono", - "itertools 0.13.0", + "itertools 0.14.0", "raphtory", "regex", "serde", @@ -6920,9 +6903,9 @@ dependencies = [ [[package]] name = "rust-ini" -version = "0.20.0" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0698206bcb8882bf2a9ecb4c1e7785db57ff052297085a6efd4fe42302068a" +checksum = "796e8d2b6696392a43bea58116b667fb4c29727dc5abd27d6acf338bb4f688c7" dependencies = [ "cfg-if", "ordered-multimap", @@ -6938,12 +6921,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - [[package]] name = "rustc-hash" version = "2.1.2" @@ -6959,29 +6936,16 @@ dependencies = [ "semver", ] -[[package]] -name = "rustix" -version = "0.38.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", -] - [[package]] name = "rustix" version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags", + "bitflags 2.11.1", "errno", "libc", - "linux-raw-sys 0.12.1", + "linux-raw-sys", "windows-sys 0.61.2", ] @@ -6991,6 +6955,7 @@ version = "0.23.38" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69f9466fb2c14ea04357e91413efb882e2a6d4a406e625449bc0a5d360d53a21" dependencies = [ + "aws-lc-rs", "once_cell", "ring", "rustls-pki-types", @@ -7043,12 +7008,40 @@ dependencies = [ "zeroize", ] +[[package]] +name = "rustls-platform-verifier" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0" +dependencies = [ + "core-foundation 0.10.1", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls", + "rustls-native-certs 0.8.3", + "rustls-platform-verifier-android", + "rustls-webpki", + "security-framework 3.7.0", + "security-framework-sys", + "webpki-root-certs", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls-platform-verifier-android" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" + [[package]] name = "rustls-webpki" version = "0.103.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8279bb85272c9f10811ae6a6c547ff594d6a7f3c6c6b02ee9726d1d0dcfcdd06" dependencies = [ + "aws-lc-rs", "ring", "rustls-pki-types", "untrusted 0.9.0", @@ -7072,28 +7065,6 @@ dependencies = [ "wait-timeout", ] -[[package]] -name = "rustyline" -version = "13.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02a2d683a4ac90aeef5b1013933f6d977bd37d51ff3f4dad829d4931a7e6be86" -dependencies = [ - "bitflags", - "cfg-if", - "clipboard-win", - "fd-lock", - "home", - "libc", - "log", - "memchr", - "nix 0.27.1", - "radix_trie", - "unicode-segmentation", - "unicode-width 0.1.14", - "utf8parse", - "winapi", -] - [[package]] name = "ryu" version = "1.0.23" @@ -7170,7 +7141,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags", + "bitflags 2.11.1", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -7183,7 +7154,7 @@ version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ - "bitflags", + "bitflags 2.11.1", "core-foundation 0.10.1", "core-foundation-sys", "libc", @@ -7222,11 +7193,23 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde-untagged" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" +dependencies = [ + "erased-serde", + "serde", + "serde_core", + "typeid", +] + [[package]] name = "serde_arrow" -version = "0.13.7" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "038967a6dda16f5c6ca5b6e1afec9cd2361d39f0db681ca338ac5f0ccece6469" +checksum = "26e4ac1bef72720318e2c67bd19b972d17084840f3188a585021828122c43c2c" dependencies = [ "arrow-array", "arrow-schema", @@ -7294,11 +7277,11 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.9" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -7319,7 +7302,7 @@ version = "3.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd5414fad8e6907dbdd5bc441a50ae8d6e26151a03b1de04d89a5576de61d01f" dependencies = [ - "base64 0.22.1", + "base64", "chrono", "hex", "indexmap 1.9.3", @@ -7344,6 +7327,19 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "serde_yaml_ng" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4db627b98b36d4203a7b458cf3573730f2bb591b28871d916dfa9efabfd41f" +dependencies = [ + "indexmap 2.14.0", + "itoa", + "ryu", + "serde", + "unsafe-libyaml", +] + [[package]] name = "sha1" version = "0.10.6" @@ -7352,7 +7348,18 @@ checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", "cpufeatures 0.2.17", - "digest", + "digest 0.10.7", +] + +[[package]] +name = "sha1" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aacc4cc499359472b4abe1bf11d0b12e688af9a805fa5e3016f9a386dc2d0214" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "digest 0.11.3", ] [[package]] @@ -7363,7 +7370,18 @@ checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures 0.2.17", - "digest", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "digest 0.11.3", ] [[package]] @@ -7416,16 +7434,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" [[package]] -name = "simdutf8" -version = "0.1.5" +name = "simd_cesu8" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" +checksum = "94f90157bb87cddf702797c5dadfa0be7d266cdf49e22da2fcaa32eff75b2c33" +dependencies = [ + "rustc_version", + "simdutf8", +] [[package]] -name = "similar" -version = "2.7.0" +name = "simdutf8" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" [[package]] name = "simple_asn1" @@ -7447,18 +7469,9 @@ checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" [[package]] name = "sketches-ddsketch" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85636c14b73d81f541e525f585c0a2109e6744e1565b5c1668e31c70c10ed65c" -dependencies = [ - "serde", -] - -[[package]] -name = "sketches-ddsketch" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c6f73aeb92d671e0cc4dca167e59b2deb6387c375391bc99ee743f326994a2b" +checksum = "05e40b6cf54d988dc1a2223531b969c9a9e30906ad90ef64890c27b4bfbb46ea" dependencies = [ "serde", ] @@ -7469,15 +7482,6 @@ version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" -[[package]] -name = "slotmap" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdd58c3c93c3d278ca835519292445cb4b0d4dc59ccfdf7ceadaab3f8aeb4038" -dependencies = [ - "version_check", -] - [[package]] name = "smallvec" version = "1.15.1" @@ -7532,25 +7536,6 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" -[[package]] -name = "snb" -version = "0.18.0" -dependencies = [ - "chrono", - "flate2", - "raphtory", -] - -[[package]] -name = "socket2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - [[package]] name = "socket2" version = "0.6.3" @@ -7569,18 +7554,18 @@ checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] name = "spki" -version = "0.7.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +checksum = "1d9efca8738c78ee9484207732f728b1ef517bbb1833d6fc0879ca898a522f6f" dependencies = [ "der", ] [[package]] name = "sqlparser" -version = "0.59.0" +version = "0.61.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4591acadbcf52f0af60eafbb2c003232b2b4cd8de5f0e9437cb8b1b59046cc0f" +checksum = "dbf5ea8d4d7c808e1af1cbabebca9a2abe603bcefc22294c5b95018d53200cb7" dependencies = [ "log", "sqlparser_derive", @@ -7588,9 +7573,9 @@ dependencies = [ [[package]] name = "sqlparser_derive" -version = "0.3.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da5fc6819faabb412da764b99d3b713bb55083c11e7e0c00144d386cd6a1939c" +checksum = "a6dd45d8fc1c79299bfbb7190e42ccbbdf6a5f52e4a6ad98d92357ea965bd289" dependencies = [ "proc-macro2", "quote", @@ -7660,6 +7645,15 @@ dependencies = [ "strum_macros 0.27.2", ] +[[package]] +name = "strum" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" +dependencies = [ + "strum_macros 0.28.0", +] + [[package]] name = "strum_macros" version = "0.26.4" @@ -7685,6 +7679,18 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "strum_macros" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "subtle" version = "2.6.1" @@ -7727,202 +7733,114 @@ name = "synchronoise" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3dbc01390fc626ce8d1cffe3376ded2b72a11bb70e1c75f404a210e4daa4def2" -dependencies = [ - "crossbeam-queue", -] - -[[package]] -name = "synstructure" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "tagptr" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" - -[[package]] -name = "tantivy" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96599ea6fccd844fc833fed21d2eecac2e6a7c1afd9e044057391d78b1feb141" -dependencies = [ - "aho-corasick", - "arc-swap", - "base64 0.22.1", - "bitpacking", - "byteorder", - "census", - "crc32fast", - "crossbeam-channel", - "downcast-rs 1.2.1", - "fastdivide", - "fnv", - "fs4", - "htmlescape", - "itertools 0.12.1", - "levenshtein_automata", - "log", - "lru", - "lz4_flex 0.11.6", - "measure_time 0.8.3", - "memmap2", - "num_cpus", - "once_cell", - "oneshot", - "rayon", - "regex", - "rust-stemmers", - "rustc-hash 1.1.0", - "serde", - "serde_json", - "sketches-ddsketch 0.2.2", - "smallvec", - "tantivy-bitpacker 0.6.0", - "tantivy-columnar 0.3.0", - "tantivy-common 0.7.0", - "tantivy-fst", - "tantivy-query-grammar 0.22.0", - "tantivy-stacker 0.3.0", - "tantivy-tokenizer-api 0.3.0", - "tempfile", - "thiserror 1.0.69", - "time", - "uuid", - "winapi", +dependencies = [ + "crossbeam-queue", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", ] +[[package]] +name = "tagptr" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" + [[package]] name = "tantivy" -version = "0.24.2" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a966cb0e76e311f09cf18507c9af192f15d34886ee43d7ba7c7e3803660c43" +checksum = "edde6a10743fff00a4e1a8c9ef020bf5f3cbad301b7d2d39f2b07f123c4eac07" dependencies = [ "aho-corasick", "arc-swap", - "base64 0.22.1", + "base64", "bitpacking", "bon", "byteorder", "census", "crc32fast", "crossbeam-channel", - "downcast-rs 2.0.2", + "datasketches", + "downcast-rs", "fastdivide", "fnv", "fs4", "htmlescape", - "hyperloglogplus", "itertools 0.14.0", "levenshtein_automata", "log", "lru", - "lz4_flex 0.11.6", - "measure_time 0.9.0", + "lz4_flex", + "measure_time", "memmap2", "once_cell", "oneshot", "rayon", "regex", "rust-stemmers", - "rustc-hash 2.1.2", + "rustc-hash", "serde", "serde_json", - "sketches-ddsketch 0.3.1", + "sketches-ddsketch", "smallvec", - "tantivy-bitpacker 0.8.0", - "tantivy-columnar 0.5.0", - "tantivy-common 0.9.0", + "tantivy-bitpacker", + "tantivy-columnar", + "tantivy-common", "tantivy-fst", - "tantivy-query-grammar 0.24.0", - "tantivy-stacker 0.5.0", - "tantivy-tokenizer-api 0.5.0", + "tantivy-query-grammar", + "tantivy-stacker", + "tantivy-tokenizer-api", "tempfile", "thiserror 2.0.18", "time", + "typetag", "uuid", "winapi", ] [[package]] name = "tantivy-bitpacker" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "284899c2325d6832203ac6ff5891b297fc5239c3dc754c5bc1977855b23c10df" -dependencies = [ - "bitpacking", -] - -[[package]] -name = "tantivy-bitpacker" -version = "0.8.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1adc286a39e089ae9938935cd488d7d34f14502544a36607effd2239ff0e2494" +checksum = "4fed3d674429bcd2de5d0a6d1aa5495fed8afd9c5ecce993019caf7615f53fa4" dependencies = [ "bitpacking", ] [[package]] name = "tantivy-columnar" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12722224ffbe346c7fec3275c699e508fd0d4710e629e933d5736ec524a1f44e" -dependencies = [ - "downcast-rs 1.2.1", - "fastdivide", - "itertools 0.12.1", - "serde", - "tantivy-bitpacker 0.6.0", - "tantivy-common 0.7.0", - "tantivy-sstable 0.3.0", - "tantivy-stacker 0.3.0", -] - -[[package]] -name = "tantivy-columnar" -version = "0.5.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6300428e0c104c4f7db6f95b466a6f5c1b9aece094ec57cdd365337908dc7344" +checksum = "c57166f5bcfd478f370ab8445afb4678dce44801fa5ce5c451aaf8595583c5dc" dependencies = [ - "downcast-rs 2.0.2", + "downcast-rs", "fastdivide", "itertools 0.14.0", "serde", - "tantivy-bitpacker 0.8.0", - "tantivy-common 0.9.0", - "tantivy-sstable 0.5.0", - "tantivy-stacker 0.5.0", -] - -[[package]] -name = "tantivy-common" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8019e3cabcfd20a1380b491e13ff42f57bb38bf97c3d5fa5c07e50816e0621f4" -dependencies = [ - "async-trait", - "byteorder", - "ownedbytes 0.7.0", - "serde", - "time", + "tantivy-bitpacker", + "tantivy-common", + "tantivy-sstable", + "tantivy-stacker", ] [[package]] name = "tantivy-common" -version = "0.9.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b6ea6090ce03dc72c27d0619e77185d26cc3b20775966c346c6d4f7e99d7f" +checksum = "bbf10915aa75da3c3b0d58b58853d2e889efbaf32d4982a4c3715dde6bba23e5" dependencies = [ "async-trait", "byteorder", - "ownedbytes 0.9.0", + "ownedbytes", "serde", "time", ] @@ -7940,86 +7858,46 @@ dependencies = [ [[package]] name = "tantivy-query-grammar" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "847434d4af57b32e309f4ab1b4f1707a6c566656264caa427ff4285c4d9d0b82" -dependencies = [ - "nom 7.1.3", -] - -[[package]] -name = "tantivy-query-grammar" -version = "0.24.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e810cdeeebca57fc3f7bfec5f85fdbea9031b2ac9b990eb5ff49b371d52bbe6a" +checksum = "dfadb8526b6da90704feb293b0701a6aae62ea14983143344be2dc5ce30f1d82" dependencies = [ + "fnv", "nom 7.1.3", + "ordered-float 5.3.0", "serde", "serde_json", ] [[package]] name = "tantivy-sstable" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c69578242e8e9fc989119f522ba5b49a38ac20f576fc778035b96cc94f41f98e" -dependencies = [ - "tantivy-bitpacker 0.6.0", - "tantivy-common 0.7.0", - "tantivy-fst", - "zstd", -] - -[[package]] -name = "tantivy-sstable" -version = "0.5.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "709f22c08a4c90e1b36711c1c6cad5ae21b20b093e535b69b18783dd2cb99416" +checksum = "8a2cfc3ac5164cbadc28965ffb145a8f47582a60ae5897859ad8d4316596c606" dependencies = [ "futures-util", "itertools 0.14.0", - "tantivy-bitpacker 0.8.0", - "tantivy-common 0.9.0", + "tantivy-bitpacker", + "tantivy-common", "tantivy-fst", "zstd", ] [[package]] name = "tantivy-stacker" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c56d6ff5591fc332739b3ce7035b57995a3ce29a93ffd6012660e0949c956ea8" -dependencies = [ - "murmurhash32", - "rand_distr 0.4.3", - "tantivy-common 0.7.0", -] - -[[package]] -name = "tantivy-stacker" -version = "0.5.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bcdebb267671311d1e8891fd9d1301803fdb8ad21ba22e0a30d0cab49ba59c1" +checksum = "6cbb051742da9d53ca9e8fff43a9b10e319338b24e2c0e15d0372df19ffeb951" dependencies = [ "murmurhash32", - "rand_distr 0.4.3", - "tantivy-common 0.9.0", -] - -[[package]] -name = "tantivy-tokenizer-api" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0dcade25819a89cfe6f17d932c9cedff11989936bf6dd4f336d50392053b04" -dependencies = [ - "serde", + "tantivy-common", ] [[package]] name = "tantivy-tokenizer-api" -version = "0.5.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfa942fcee81e213e09715bbce8734ae2180070b97b33839a795ba1de201547d" +checksum = "eac258c2c6390673f2685813afeeafcb8c4e0ee7de8dd3fc46838dcc37263f98" dependencies = [ "serde", ] @@ -8045,26 +7923,17 @@ dependencies = [ "fastrand", "getrandom 0.4.2", "once_cell", - "rustix 1.1.4", + "rustix", "windows-sys 0.61.2", ] -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] - [[package]] name = "terminal_size" version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "230a1b821ccbd75b185820a1f1ff7b14d21da1e442e22c0863ea5f08771a8874" dependencies = [ - "rustix 1.1.4", + "rustix", "windows-sys 0.61.2", ] @@ -8074,7 +7943,7 @@ version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37d53ac171c92a39e4769491c4b4dde7022c60042254b5fc044ae409d34a24d4" dependencies = [ - "env_logger 0.11.10", + "env_logger", "test-log-macros", "tracing-subscriber", ] @@ -8161,9 +8030,9 @@ dependencies = [ [[package]] name = "tikv-jemalloc-sys" -version = "0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7" +version = "0.7.1+5.3.1-0-g81034ce1f1373e37dc865038e1bc8eeecf559ce8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd8aa5b2ab86a2cefa406d889139c162cbb230092f7d1d7cbc1716405d852a3b" +checksum = "1a2825c78386b4ae0314074867860ba9577875de945f05992c38815cbec327f0" dependencies = [ "cc", "libc", @@ -8171,9 +8040,9 @@ dependencies = [ [[package]] name = "tikv-jemallocator" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0359b4327f954e0567e69fb191cf1436617748813819c94b8cd4a431422d053a" +checksum = "249f09e49ab1609436f34c776e84231bead18d6a955f119f939bdc1d847561bd" dependencies = [ "libc", "tikv-jemalloc-sys", @@ -8187,6 +8056,7 @@ checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" dependencies = [ "deranged", "itoa", + "js-sys", "num-conv", "powerfmt", "serde_core", @@ -8267,9 +8137,8 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.6.3", + "socket2", "tokio-macros", - "tracing", "windows-sys 0.61.2", ] @@ -8303,6 +8172,7 @@ dependencies = [ "futures-core", "pin-project-lite", "tokio", + "tokio-util", ] [[package]] @@ -8333,23 +8203,15 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.23" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" +checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee" dependencies = [ - "serde", + "serde_core", "serde_spanned", - "toml_datetime 0.6.11", - "toml_edit 0.22.27", -] - -[[package]] -name = "toml_datetime" -version = "0.6.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" -dependencies = [ - "serde", + "toml_datetime", + "toml_parser", + "winnow", ] [[package]] @@ -8361,20 +8223,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "toml_edit" -version = "0.22.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" -dependencies = [ - "indexmap 2.14.0", - "serde", - "serde_spanned", - "toml_datetime 0.6.11", - "toml_write", - "winnow 0.7.15", -] - [[package]] name = "toml_edit" version = "0.25.11+spec-1.1.0" @@ -8382,9 +8230,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" dependencies = [ "indexmap 2.14.0", - "toml_datetime 1.1.1+spec-1.1.0", + "toml_datetime", "toml_parser", - "winnow 1.0.1", + "winnow", ] [[package]] @@ -8393,27 +8241,18 @@ version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ - "winnow 1.0.1", + "winnow", ] -[[package]] -name = "toml_write" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" - [[package]] name = "tonic" -version = "0.12.3" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" +checksum = "ac2a5518c70fa84342385732db33fb3f44bc4cc748936eb5833d2df34d6445ef" dependencies = [ - "async-stream", "async-trait", - "axum 0.7.9", - "base64 0.22.1", + "base64", "bytes", - "h2", "http", "http-body", "http-body-util", @@ -8422,34 +8261,35 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", - "prost 0.13.5", - "socket2 0.5.10", + "sync_wrapper", "tokio", "tokio-stream", - "tower 0.4.13", + "tower", "tower-layer", "tower-service", "tracing", ] [[package]] -name = "tower" -version = "0.4.13" +name = "tonic-prost" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +checksum = "50849f68853be452acf590cde0b146665b8d507b3b8af17261df47e02c209ea0" dependencies = [ - "futures-core", - "futures-util", - "indexmap 1.9.3", - "pin-project", - "pin-project-lite", - "rand 0.8.5", - "slab", - "tokio", - "tokio-util", - "tower-layer", - "tower-service", - "tracing", + "bytes", + "prost", + "tonic", +] + +[[package]] +name = "tonic-types" +version = "0.14.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ab1b02061f83d519bba3caa167f88f261ef05720ab8ebc954ade70de3348e8" +dependencies = [ + "prost", + "prost-types", + "tonic", ] [[package]] @@ -8460,9 +8300,12 @@ checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" dependencies = [ "futures-core", "futures-util", + "indexmap 2.14.0", "pin-project-lite", + "slab", "sync_wrapper", "tokio", + "tokio-util", "tower-layer", "tower-service", "tracing", @@ -8475,7 +8318,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" dependencies = [ "async-compression", - "bitflags", + "bitflags 2.11.1", "bytes", "futures-core", "futures-util", @@ -8486,7 +8329,7 @@ dependencies = [ "pin-project-lite", "tokio", "tokio-util", - "tower 0.5.3", + "tower", "tower-layer", "tower-service", ] @@ -8549,14 +8392,12 @@ dependencies = [ [[package]] name = "tracing-opentelemetry" -version = "0.28.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a971f6058498b5c0f1affa23e7ea202057a7301dbff68e968b2d578bcbd053" +checksum = "adbc64cba7137545b8044cb1fe9814f7aacf3c6b5f9b45be8bb5db538befdb26" dependencies = [ "js-sys", - "once_cell", "opentelemetry", - "opentelemetry_sdk", "smallvec", "tracing", "tracing-core", @@ -8583,27 +8424,6 @@ dependencies = [ "tracing-log", ] -[[package]] -name = "tracing-test" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19a4c448db514d4f24c5ddb9f73f2ee71bfb24c526cf0c570ba142d1119e0051" -dependencies = [ - "tracing-core", - "tracing-subscriber", - "tracing-test-macro", -] - -[[package]] -name = "tracing-test-macro" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad06847b7afb65c7866a36664b75c40b895e318cea4f71299f013fb22965329d" -dependencies = [ - "quote", - "syn 2.0.117", -] - [[package]] name = "try-lock" version = "0.2.5" @@ -8622,7 +8442,7 @@ dependencies = [ "httparse", "log", "rand 0.9.4", - "sha1", + "sha1 0.10.6", "thiserror 2.0.18", "utf-8", ] @@ -8636,11 +8456,47 @@ dependencies = [ "rand 0.9.4", ] +[[package]] +name = "typed-path" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + +[[package]] +name = "typetag" +version = "0.2.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5a897b12c6c1151ad0b138b8db50252dc301f93bc3b027db05eec82aeed298c" +dependencies = [ + "erased-serde", + "inventory", + "once_cell", + "serde", + "typetag-impl", +] + +[[package]] +name = "typetag-impl" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "cf808357c6ed7e13ba0f3277ec8d8f21b2d501274895104263985330c726c1c5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] [[package]] name = "ucd-trie" @@ -8669,6 +8525,12 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" +[[package]] +name = "unicode-blocks" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b12e05d9e06373163a9bb6bb8c263c261b396643a99445fe6b9811fd376581b" + [[package]] name = "unicode-ident" version = "1.0.24" @@ -8676,16 +8538,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] -name = "unicode-segmentation" -version = "1.13.2" +name = "unicode-normalization" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" +checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8" +dependencies = [ + "tinyvec", +] [[package]] -name = "unicode-width" -version = "0.1.14" +name = "unicode-segmentation" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" +checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" [[package]] name = "unicode-width" @@ -8700,10 +8565,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] -name = "unindent" -version = "0.2.4" +name = "unsafe-libyaml" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" [[package]] name = "untrusted" @@ -8717,12 +8582,6 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" -[[package]] -name = "unty" -version = "0.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" - [[package]] name = "url" version = "2.5.8" @@ -8783,12 +8642,6 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "virtue" -version = "0.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1" - [[package]] name = "wait-timeout" version = "0.2.1" @@ -8937,7 +8790,7 @@ version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" dependencies = [ - "bitflags", + "bitflags 2.11.1", "hashbrown 0.15.5", "indexmap 2.14.0", "semver", @@ -8963,6 +8816,15 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webpki-root-certs" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31141ce3fc3e300ae89b78c0dd67f9708061d1d2eda54b8209346fd6be9a92c" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "webpki-roots" version = "0.26.11" @@ -9242,15 +9104,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" -[[package]] -name = "winnow" -version = "0.7.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" -dependencies = [ - "memchr", -] - [[package]] name = "winnow" version = "1.0.1" @@ -9318,7 +9171,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" dependencies = [ "anyhow", - "bitflags", + "bitflags 2.11.1", "indexmap 2.14.0", "log", "serde", @@ -9369,20 +9222,11 @@ version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" -[[package]] -name = "xz2" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2" -dependencies = [ - "lzma-sys", -] - [[package]] name = "yaml-rust2" -version = "0.8.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8902160c4e6f2fb145dbe9d6760a75e3c9522d8bf796ed7047c85919ac7115f8" +checksum = "631a50d867fafb7093e709d75aaee9e0e0d5deb934021fcea25ac2fe09edc51e" dependencies = [ "arraydeque", "encoding_rs", @@ -9464,20 +9308,6 @@ name = "zeroize" version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] [[package]] name = "zerotrie" @@ -9514,29 +9344,26 @@ dependencies = [ [[package]] name = "zip" -version = "2.4.2" +version = "8.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabe6324e908f85a1c52063ce7aa26b68dcb7eb6dbc83a2d148403c9bc3eba50" +checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b" dependencies = [ "aes", - "arbitrary", - "bzip2 0.5.2", - "constant_time_eq 0.3.1", + "bzip2", + "constant_time_eq", "crc32fast", - "crossbeam-utils", "deflate64", - "displaydoc", "flate2", - "getrandom 0.3.4", + "getrandom 0.4.2", "hmac", "indexmap 2.14.0", - "lzma-rs", + "lzma-rust2", "memchr", "pbkdf2", - "sha1", - "thiserror 2.0.18", + "ppmd-rust", + "sha1 0.11.0", "time", - "xz2", + "typed-path", "zeroize", "zopfli", "zstd", diff --git a/raphtory/examples/eth_loader.rs b/raphtory/examples/eth_loader.rs index 565454eeb6..42adf3a58a 100644 --- a/raphtory/examples/eth_loader.rs +++ b/raphtory/examples/eth_loader.rs @@ -4,22 +4,32 @@ use raphtory::io::parquet_loaders::load_edges_from_parquet; use raphtory::{arrow_loader::df_loaders::edges::ColumnNames, errors::GraphError, prelude::*}; use std::path::{Path, PathBuf}; +#[cfg(target_os = "macos")] +use tikv_jemallocator::Jemalloc; + +#[cfg(target_os = "macos")] +#[global_allocator] +static GLOBAL: Jemalloc = Jemalloc; /// Load ETH data from Parquet files into a Raphtory Graph. #[cfg(feature = "io")] fn load_eth_graph(parquet_path: &Path, graph: &Graph) -> Result<(), GraphError> { // ── Static Nodes ────────────────────────────────────────────────────── - let props = (1..=20).map(|i| format!("prop_{i}")).collect::>(); - let props = props.iter().map(|s| s.as_ref()).collect::>(); load_edges_from_parquet( graph, parquet_path, - ColumnNames::new("time", None, "source", "target", None), + ColumnNames::new( + "transaction_timestamp", + None, + "transfer_sender_cluster_id", + "transfer_receiver_cluster_id", + None, + ), true, - &props, + &["receiver_address", "transfer_amount_usd"], &[], None, - Some("G500"), + Some("dac"), None, None, )?; diff --git a/raphtory/examples/snb_loader.rs b/raphtory/examples/snb_loader.rs index 1285d31c8c..9e71a1febf 100644 --- a/raphtory/examples/snb_loader.rs +++ b/raphtory/examples/snb_loader.rs @@ -114,6 +114,7 @@ fn load_snb_graph_v2( None, None, None, + None, true, None, )?; @@ -469,15 +470,16 @@ fn main() { .nth(1) .map(|dir| PathBuf::from(dir)) .unwrap_or_else(|| panic!("Usage: snb_loader ")); - let graph_path = std::env::args() - .nth(2) - .map(|graph| PathBuf::from(graph)) - .unwrap_or_else(|| parquet_dir.join("..").join("graph")); let filter = std::env::args() - .nth(3) + .nth(2) .map(|s| serde_json::from_str::(&s)) .transpose() .unwrap(); + + let graph_path = std::env::args() + .nth(3) + .map(|graph| PathBuf::from(graph)) + .unwrap_or_else(|| parquet_dir.join("..").join("graph")); let graph = if !graph_path.exists() { Graph::new_at_path(&graph_path).unwrap() } else { From caaca0cf3b7f77f236bce8fc1e746bf6c1597beb Mon Sep 17 00:00:00 2001 From: Fabian Murariu Date: Mon, 8 Jun 2026 14:44:11 +0100 Subject: [PATCH 15/22] update snb_loader with heavy props --- raphtory/examples/snb_loader.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/raphtory/examples/snb_loader.rs b/raphtory/examples/snb_loader.rs index 9e71a1febf..a93c92dd86 100644 --- a/raphtory/examples/snb_loader.rs +++ b/raphtory/examples/snb_loader.rs @@ -247,6 +247,20 @@ fn load_snb_graph( "length", "id", "creationDate", + "prop_1", + "prop_2", + "prop_3", + "prop_4", + "prop_5", + "prop_6", + "prop_7", + "prop_8", + "prop_9", + "prop_10", + "prop_11", + "prop_13", + "prop_14", + "prop_15", ], ), ]; From a746db67f9155fd6d4d411ce6532c7b07a28f4fb Mon Sep 17 00:00:00 2001 From: Fabian Murariu Date: Mon, 8 Jun 2026 16:47:42 +0100 Subject: [PATCH 16/22] add prefetch for loading nodes --- raphtory/src/arrow_loader/df_loaders/nodes.rs | 74 ++++++++++++++++++- raphtory/src/io/parquet_loaders.rs | 3 +- 2 files changed, 75 insertions(+), 2 deletions(-) diff --git a/raphtory/src/arrow_loader/df_loaders/nodes.rs b/raphtory/src/arrow_loader/df_loaders/nodes.rs index b5088c159e..321be1f0f0 100644 --- a/raphtory/src/arrow_loader/df_loaders/nodes.rs +++ b/raphtory/src/arrow_loader/df_loaders/nodes.rs @@ -24,7 +24,10 @@ use raphtory_storage::mutation::addition_ops::{InternalAdditionOps, SessionAddit use rayon::prelude::*; use std::{ collections::HashMap, - sync::atomic::{AtomicBool, Ordering}, + sync::{ + atomic::{AtomicBool, Ordering}, + mpsc, + }, }; use storage::{ api::nodes::NodeSegmentOps, @@ -48,6 +51,75 @@ use crate::arrow_loader::{ use kdam::BarExt; /// If layer_id_col is provided, then layer_col must also be provided +#[allow(clippy::too_many_arguments)] +pub fn load_nodes_from_df_prefetch< + G: StaticGraphViewOps + PropertyAdditionOps + AdditionOps + std::fmt::Debug, + I1: Iterator> + Send, +>( + df_view: DFView, + time: &str, + secondary_index: Option<&str>, + node_id: &str, + properties: &[&str], + metadata: &[&str], + shared_metadata: Option<&HashMap>, + node_type: Option<&str>, + node_type_col: Option<&str>, + graph: &G, + resolve_nodes: bool, + layer: Option<&str>, + layer_col: Option<&str>, + layer_id_col: Option<&str>, +) -> Result<(), GraphError> { + let DFView { + names, + chunks, + num_rows, + } = df_view; + + LOAD_POOL.install(|| { + rayon::scope(|s| { + let (tx, rx) = mpsc::sync_channel(2); + + s.spawn(move |_| { + let sender = tx; + for chunk in chunks { + if let Err(e) = sender.send(chunk) { + eprintln!("Error sending chunk to loader: {}", e); + break; + } + } + }); + + let df_view_prefetch = DFView { + names, + chunks: rx.into_iter(), + num_rows, + }; + + load_nodes_from_df( + df_view_prefetch, + time, + secondary_index, + node_id, + properties, + metadata, + shared_metadata, + node_type, + node_type_col, + graph, + resolve_nodes, + layer, + layer_col, + layer_id_col, + )?; + Ok::<(), GraphError>(()) + })?; + + Ok(()) + }) +} + #[allow(clippy::too_many_arguments)] pub fn load_nodes_from_df< G: StaticGraphViewOps + PropertyAdditionOps + AdditionOps + std::fmt::Debug, diff --git a/raphtory/src/io/parquet_loaders.rs b/raphtory/src/io/parquet_loaders.rs index b60c44c6be..ef44c99785 100644 --- a/raphtory/src/io/parquet_loaders.rs +++ b/raphtory/src/io/parquet_loaders.rs @@ -1,3 +1,4 @@ +use crate::arrow_loader::df_loaders::nodes::load_nodes_from_df_prefetch; use crate::{ arrow_loader::{ dataframe::*, @@ -89,7 +90,7 @@ pub fn load_nodes_from_parquet< schema.clone(), )?; df_view.check_cols_exist(&cols_to_check)?; - load_nodes_from_df( + load_nodes_from_df_prefetch( df_view, time, secondary_index, From 1e4e54da53ffbfba9e7139363bd860d9f7c3b083 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 8 Jun 2026 18:41:15 +0000 Subject: [PATCH 17/22] chore: apply tidy-public auto-fixes --- raphtory/src/io/parquet_loaders.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/raphtory/src/io/parquet_loaders.rs b/raphtory/src/io/parquet_loaders.rs index ef44c99785..c1ccd7bea7 100644 --- a/raphtory/src/io/parquet_loaders.rs +++ b/raphtory/src/io/parquet_loaders.rs @@ -1,10 +1,9 @@ -use crate::arrow_loader::df_loaders::nodes::load_nodes_from_df_prefetch; use crate::{ arrow_loader::{ dataframe::*, df_loaders::{ edges::{load_edges_from_df_prefetch, ColumnNames}, - nodes::{load_node_props_from_df, load_nodes_from_df}, + nodes::{load_node_props_from_df, load_nodes_from_df, load_nodes_from_df_prefetch}, *, }, }, From 9fa196e67fcec6a38aa5674d542e523626f05117 Mon Sep 17 00:00:00 2001 From: Fabian Murariu Date: Tue, 9 Jun 2026 11:37:26 +0100 Subject: [PATCH 18/22] light refactor of DF loaders --- raphtory/src/arrow_loader/df_loaders/edges.rs | 24 +---------------- raphtory/src/arrow_loader/df_loaders/mod.rs | 25 +++++++++++++++++ raphtory/src/arrow_loader/df_loaders/nodes.rs | 27 ++++++++++++++++--- 3 files changed, 49 insertions(+), 27 deletions(-) diff --git a/raphtory/src/arrow_loader/df_loaders/edges.rs b/raphtory/src/arrow_loader/df_loaders/edges.rs index e7eb444d74..9bffa1230f 100644 --- a/raphtory/src/arrow_loader/df_loaders/edges.rs +++ b/raphtory/src/arrow_loader/df_loaders/edges.rs @@ -57,6 +57,7 @@ use storage::{ }, Extension, }; +use crate::arrow_loader::df_loaders::{group_rows_by_vid_segment, secondary_index_at}; #[derive(Debug, Copy, Clone)] pub struct ColumnNames<'a> { @@ -902,22 +903,6 @@ fn add_and_resolve_outbound_edges< } } -fn group_rows_by_vid_segment( - vids: &[VID], - max_segment_len: u32, - num_segments: usize, -) -> Vec> { - let mut rows_by_segment = vec![Vec::new(); num_segments]; - for (row, vid) in vids.iter().enumerate() { - let (segment_id, _) = resolve_pos(vid.index(), max_segment_len); - let rows = rows_by_segment - .get_mut(segment_id) - .expect("segment not found while grouping by vid"); - rows.push(row); - } - rows_by_segment -} - fn group_rows_by_eid_segment( eids: &[EID], max_segment_len: u32, @@ -934,13 +919,6 @@ fn group_rows_by_eid_segment( rows_by_segment } -#[inline(always)] -fn secondary_index_at(col: &SecondaryIndexCol, row: usize) -> usize { - match col { - SecondaryIndexCol::DataFrame(arr) => arr.value(row) as usize, - SecondaryIndexCol::Range(range) => range.start + row, - } -} pub fn store_node_ids>( gid_str_cache: &[(GidRef<'_>, VID)], diff --git a/raphtory/src/arrow_loader/df_loaders/mod.rs b/raphtory/src/arrow_loader/df_loaders/mod.rs index 7e4cf46d18..5074b06014 100644 --- a/raphtory/src/arrow_loader/df_loaders/mod.rs +++ b/raphtory/src/arrow_loader/df_loaders/mod.rs @@ -23,6 +23,7 @@ use std::{ env, sync::atomic::{AtomicUsize, Ordering}, }; +use storage::pages::resolve_pos; pub mod edge_props; pub mod edges; @@ -357,3 +358,27 @@ fn resolve_nodes_with_cache_generic<'a, V: Send + Sync>( })?; Ok(gid_str_cache) } + +pub(crate) fn group_rows_by_vid_segment( + vids: &[VID], + max_segment_len: u32, + num_segments: usize, +) -> Vec> { + let mut rows_by_segment = vec![Vec::new(); num_segments]; + for (row, vid) in vids.iter().enumerate() { + let (segment_id, _) = resolve_pos(vid.index(), max_segment_len); + let rows = rows_by_segment + .get_mut(segment_id) + .expect("segment not found while grouping by vid"); + rows.push(row); + } + rows_by_segment +} + +#[inline(always)] +fn secondary_index_at(col: &SecondaryIndexCol, row: usize) -> usize { + match col { + SecondaryIndexCol::DataFrame(arr) => arr.value(row) as usize, + SecondaryIndexCol::Range(range) => range.start + row, + } +} diff --git a/raphtory/src/arrow_loader/df_loaders/nodes.rs b/raphtory/src/arrow_loader/df_loaders/nodes.rs index 321be1f0f0..732dd99630 100644 --- a/raphtory/src/arrow_loader/df_loaders/nodes.rs +++ b/raphtory/src/arrow_loader/df_loaders/nodes.rs @@ -49,6 +49,7 @@ use crate::arrow_loader::{ }; #[cfg(feature = "progress")] use kdam::BarExt; +use crate::arrow_loader::df_loaders::{group_rows_by_vid_segment, secondary_index_at}; /// If layer_id_col is provided, then layer_col must also be provided #[allow(clippy::too_many_arguments)] @@ -271,20 +272,38 @@ pub fn load_nodes_from_df< node_stats.update_time(time); }; + let max_node_segment_len = write_locked_graph + .graph() + .storage() + .nodes() + .max_segment_len() as usize; + let rows_by_segment = group_rows_by_vid_segment( + src_vids, + max_node_segment_len as u32, + write_locked_graph.nodes.len(), + ); + write_locked_graph .nodes .par_iter_mut() .enumerate() .try_for_each(|(segment_id, shard)| { - if !node_segments_touched[segment_id].load(Ordering::Relaxed) { + let node_rows = &rows_by_segment[segment_id]; + + if node_rows.is_empty() { // we need to graph a writer nevertheless as it may have old data that needs to flush if shard.segment().is_dirty() { - let mut _writer = shard.writer(); + let _writer = shard.writer(); } return Ok::<_, GraphError>(()); } // Zip all columns for iteration. - let zip = izip!(src_vids.iter(), time_col.iter(), secondary_index_col.iter(),); + let zip = node_rows.iter().map(|&row| { + let vid = &src_vids[row]; + let time = time_col[row]; + let secondary_index = secondary_index_at(&secondary_index_col, row); + (row, vid, time, secondary_index) + }); // resolve_nodes=false // assumes we are loading our own graph, via the parquet loaders, @@ -294,7 +313,7 @@ pub fn load_nodes_from_df< } let mut writer = shard.writer(); - for (row, (vid, time, secondary_index)) in zip.enumerate() { + for (row, vid, time, secondary_index) in zip { if let Some(mut_node) = writer.resolve_pos(*vid) { let t = EventTime(time, secondary_index); let layer_id = layer_col_resolved From c92471cae8d387064ed19072e6b0f59b31829bc1 Mon Sep 17 00:00:00 2001 From: Fabian Murariu Date: Tue, 9 Jun 2026 12:01:04 +0100 Subject: [PATCH 19/22] change the estimated container size via ENV variable --- .../core/entities/properties/prop/prop_type.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/raphtory-api/src/core/entities/properties/prop/prop_type.rs b/raphtory-api/src/core/entities/properties/prop/prop_type.rs index b1b17c3131..dc07d4f529 100644 --- a/raphtory-api/src/core/entities/properties/prop/prop_type.rs +++ b/raphtory-api/src/core/entities/properties/prop/prop_type.rs @@ -1,5 +1,6 @@ use arrow_schema::DataType; use serde::{Deserialize, Serialize}; +use std::cell::LazyCell; use std::{ collections::HashMap, fmt, @@ -76,6 +77,18 @@ impl Display for PropType { } } +const CONTAINER_SIZE: LazyCell = LazyCell::new(|| { + std::env::var("RAPHTORY_PROP_CONTAINER_SIZE") + .ok() + .map(|size| { + size.parse::().unwrap_or_else(|_| { + eprintln!("RAPHTORY_PROP_CONTAINER_SIZE not set or invalid, defaulting to 64"); + 64 + }) + }) + .unwrap_or(64) +}); + impl PropType { pub fn inner(&self) -> Option<&PropType> { match self { @@ -142,9 +155,8 @@ impl PropType { // This is the best guess for the size of one row of properties pub fn est_size(&self) -> usize { - const CONTAINER_SIZE: usize = 64; match self { - PropType::Str => CONTAINER_SIZE, + PropType::Str => *CONTAINER_SIZE, PropType::U8 | PropType::Bool => 1, PropType::U16 => 2, PropType::I32 | PropType::F32 | PropType::U32 => 4, From 2a4d285fdcd342abde77ba67ec88274d15e57701 Mon Sep 17 00:00:00 2001 From: Fabian Murariu Date: Tue, 9 Jun 2026 12:05:57 +0100 Subject: [PATCH 20/22] fix CONTAINER_SIZE --- .../src/core/entities/properties/prop/prop_type.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/raphtory-api/src/core/entities/properties/prop/prop_type.rs b/raphtory-api/src/core/entities/properties/prop/prop_type.rs index dc07d4f529..390749b954 100644 --- a/raphtory-api/src/core/entities/properties/prop/prop_type.rs +++ b/raphtory-api/src/core/entities/properties/prop/prop_type.rs @@ -155,16 +155,17 @@ impl PropType { // This is the best guess for the size of one row of properties pub fn est_size(&self) -> usize { + let container_size = *CONTAINER_SIZE; match self { - PropType::Str => *CONTAINER_SIZE, + PropType::Str => container_size, PropType::U8 | PropType::Bool => 1, PropType::U16 => 2, PropType::I32 | PropType::F32 | PropType::U32 => 4, PropType::I64 | PropType::F64 | PropType::U64 => 8, PropType::NDTime | PropType::DTime => 8, - PropType::List(p_type) => p_type.est_size() * CONTAINER_SIZE, + PropType::List(p_type) => p_type.est_size() * container_size, PropType::Map(p_map) => { - p_map.values().map(|v| v.est_size()).sum::() * CONTAINER_SIZE + p_map.values().map(|v| v.est_size()).sum::() * container_size } PropType::Decimal { .. } => 16, PropType::Empty => 0, From 298d4b36f3ddb29f757503171a08c75d2903a7ec Mon Sep 17 00:00:00 2001 From: Fabian Murariu Date: Fri, 12 Jun 2026 14:08:19 +0100 Subject: [PATCH 21/22] make LocalPOS usable from Properties --- db4-storage/src/lib.rs | 6 ++++++ .../src/core/entities/properties/prop/prop_type.rs | 2 +- raphtory/examples/snb_loader.rs | 14 -------------- raphtory/src/arrow_loader/df_loaders/edges.rs | 7 +++---- raphtory/src/io/parquet_loaders.rs | 2 +- 5 files changed, 11 insertions(+), 20 deletions(-) diff --git a/db4-storage/src/lib.rs b/db4-storage/src/lib.rs index d569e955bd..2fb6a2ed9e 100644 --- a/db4-storage/src/lib.rs +++ b/db4-storage/src/lib.rs @@ -153,6 +153,12 @@ impl From for LocalPOS { } } +impl From for usize { + fn from(id: LocalPOS) -> Self { + id.0 as usize + } +} + impl LocalPOS { pub fn as_vid(self, page_id: usize, max_page_len: u32) -> VID { VID(page_id * (max_page_len as usize) + (self.0 as usize)) diff --git a/raphtory-api/src/core/entities/properties/prop/prop_type.rs b/raphtory-api/src/core/entities/properties/prop/prop_type.rs index 390749b954..3dd5172e86 100644 --- a/raphtory-api/src/core/entities/properties/prop/prop_type.rs +++ b/raphtory-api/src/core/entities/properties/prop/prop_type.rs @@ -1,7 +1,7 @@ use arrow_schema::DataType; use serde::{Deserialize, Serialize}; -use std::cell::LazyCell; use std::{ + cell::LazyCell, collections::HashMap, fmt, fmt::{Display, Formatter}, diff --git a/raphtory/examples/snb_loader.rs b/raphtory/examples/snb_loader.rs index a93c92dd86..9e71a1febf 100644 --- a/raphtory/examples/snb_loader.rs +++ b/raphtory/examples/snb_loader.rs @@ -247,20 +247,6 @@ fn load_snb_graph( "length", "id", "creationDate", - "prop_1", - "prop_2", - "prop_3", - "prop_4", - "prop_5", - "prop_6", - "prop_7", - "prop_8", - "prop_9", - "prop_10", - "prop_11", - "prop_13", - "prop_14", - "prop_15", ], ), ]; diff --git a/raphtory/src/arrow_loader/df_loaders/edges.rs b/raphtory/src/arrow_loader/df_loaders/edges.rs index 9bffa1230f..ddcef6e4dd 100644 --- a/raphtory/src/arrow_loader/df_loaders/edges.rs +++ b/raphtory/src/arrow_loader/df_loaders/edges.rs @@ -5,9 +5,10 @@ use kdam::BarExt; use crate::{ arrow_loader::{ - dataframe::{DFChunk, DFView, SecondaryIndexCol}, + dataframe::{DFChunk, DFView}, df_loaders::{ - extract_secondary_index_col, process_shared_properties, resolve_nodes_with_cache, + extract_secondary_index_col, group_rows_by_vid_segment, process_shared_properties, + resolve_nodes_with_cache, secondary_index_at, }, layer_col::lift_layer_col, node_col::NodeCol, @@ -57,7 +58,6 @@ use storage::{ }, Extension, }; -use crate::arrow_loader::df_loaders::{group_rows_by_vid_segment, secondary_index_at}; #[derive(Debug, Copy, Clone)] pub struct ColumnNames<'a> { @@ -919,7 +919,6 @@ fn group_rows_by_eid_segment( rows_by_segment } - pub fn store_node_ids>( gid_str_cache: &[(GidRef<'_>, VID)], locked_page: &mut LockedNodePage<'_, NS>, diff --git a/raphtory/src/io/parquet_loaders.rs b/raphtory/src/io/parquet_loaders.rs index c1ccd7bea7..d807375218 100644 --- a/raphtory/src/io/parquet_loaders.rs +++ b/raphtory/src/io/parquet_loaders.rs @@ -3,7 +3,7 @@ use crate::{ dataframe::*, df_loaders::{ edges::{load_edges_from_df_prefetch, ColumnNames}, - nodes::{load_node_props_from_df, load_nodes_from_df, load_nodes_from_df_prefetch}, + nodes::{load_node_props_from_df, load_nodes_from_df_prefetch}, *, }, }, From faea6da19f948c8c118ecaf12b4b19dff782dc7a Mon Sep 17 00:00:00 2001 From: Fabian Murariu Date: Fri, 12 Jun 2026 16:02:42 +0100 Subject: [PATCH 22/22] fmt --- raphtory-graphql/src/lib.rs | 3 - raphtory-graphql/src/model/graph/filtering.rs | 43 +++++-- raphtory-tests/tests/test_filters.rs | 46 ++++---- raphtory/src/arrow_loader/df_loaders/nodes.rs | 4 +- raphtory/src/db/api/state/ops/filter.rs | 22 ++-- .../graph/views/filter/model/degree_filter.rs | 105 +++++++++++------- .../src/db/graph/views/filter/model/mod.rs | 3 +- .../views/filter/model/node_filter/mod.rs | 45 +++++--- .../src/python/filter/node_filter_builders.rs | 12 +- 9 files changed, 176 insertions(+), 107 deletions(-) diff --git a/raphtory-graphql/src/lib.rs b/raphtory-graphql/src/lib.rs index 184f6a0049..1a3f2acfde 100644 --- a/raphtory-graphql/src/lib.rs +++ b/raphtory-graphql/src/lib.rs @@ -536,7 +536,6 @@ mod graphql_test { graph } - fn degree_graph_with_add_edge_only() -> Graph { let graph = Graph::new(); @@ -646,8 +645,6 @@ mod graphql_test { ); } - - #[tokio::test] async fn test_unique_temporal_properties() { let g = Graph::new(); diff --git a/raphtory-graphql/src/model/graph/filtering.rs b/raphtory-graphql/src/model/graph/filtering.rs index 3033016e1b..2ab6872c9c 100644 --- a/raphtory-graphql/src/model/graph/filtering.rs +++ b/raphtory-graphql/src/model/graph/filtering.rs @@ -1,4 +1,7 @@ -use crate::model::{graph::{node_id::GqlNodeId, property::Value, timeindex::GqlTimeInput}, plugins::operation}; +use crate::model::{ + graph::{node_id::GqlNodeId, property::Value, timeindex::GqlTimeInput}, + plugins::operation, +}; use async_graphql::dynamic::ValueAccessor; use dynamic_graphql::{ internal::{ @@ -7,16 +10,35 @@ use dynamic_graphql::{ Enum, InputObject, OneOfInput, }; use raphtory::{ - db::{api::{state::ops::Degree, view::internal::filtered_edge}, graph::views::filter::model::{ - ComposableFilter, DynFilter, DynView, NoFilter, ViewWrapOps, degree_filter::DegreeFilter, edge_filter::{CompositeEdgeFilter, EdgeFilter}, filter::{Filter, FilterValue}, filter_operator::FilterOperator, graph_filter::GraphFilter, is_active_edge_filter::IsActiveEdge, is_active_node_filter::IsActiveNode, is_deleted_filter::IsDeletedEdge, is_self_loop_filter::IsSelfLoopEdge, is_valid_filter::IsValidEdge, latest_filter::Latest as LatestWrap, layered_filter::Layered, node_filter::{CompositeNodeFilter, NodeFilter}, property_filter::{Op, PropertyFilter, PropertyFilterValue, PropertyRef}, snapshot_filter::{SnapshotAt as SnapshotAtWrap, SnapshotLatest as SnapshotLatestWrap}, windowed_filter::Windowed - }}, + db::{ + api::{state::ops::Degree, view::internal::filtered_edge}, + graph::views::filter::model::{ + degree_filter::DegreeFilter, + edge_filter::{CompositeEdgeFilter, EdgeFilter}, + filter::{Filter, FilterValue}, + filter_operator::FilterOperator, + graph_filter::GraphFilter, + is_active_edge_filter::IsActiveEdge, + is_active_node_filter::IsActiveNode, + is_deleted_filter::IsDeletedEdge, + is_self_loop_filter::IsSelfLoopEdge, + is_valid_filter::IsValidEdge, + latest_filter::Latest as LatestWrap, + layered_filter::Layered, + node_filter::{CompositeNodeFilter, NodeFilter}, + property_filter::{Op, PropertyFilter, PropertyFilterValue, PropertyRef}, + snapshot_filter::{SnapshotAt as SnapshotAtWrap, SnapshotLatest as SnapshotLatestWrap}, + windowed_filter::Windowed, + ComposableFilter, DynFilter, DynView, NoFilter, ViewWrapOps, + }, + }, errors::GraphError, }; -use raphtory_api::core::Direction; use raphtory_api::core::{ entities::{properties::prop::Prop, Layer, GID}, storage::timeindex::{AsTime, EventTime}, utils::time::IntoTime, + Direction, }; use serde::{Deserialize, Serialize}; use std::{ @@ -304,7 +326,6 @@ pub struct PropertyFilterNew { pub where_: PropCondition, } - /// Filters nodes by computed degree with a directional scope. /// /// `DegreeFilterNew` lets callers filter on: @@ -330,8 +351,8 @@ pub enum DegreeDirection { impl From for Direction { fn from(d: DegreeDirection) -> Self { match d { - DegreeDirection::In => Direction::IN, - DegreeDirection::Out => Direction::OUT, + DegreeDirection::In => Direction::IN, + DegreeDirection::Out => Direction::OUT, DegreeDirection::Both => Direction::BOTH, } } @@ -342,7 +363,7 @@ impl From for String { match d { DegreeDirection::In => "in_degree".to_string(), DegreeDirection::Out => "out_degree".to_string(), - DegreeDirection::Both => "degree".to_string(), + DegreeDirection::Both => "degree".to_string(), } } } @@ -1440,8 +1461,8 @@ impl TryFrom for CompositeNodeFilter { direction: core_direction, operator, value, - ops - })) + ops, + })) } GqlNodeFilter::Property(prop) => { let prop_ref = PropertyRef::Property(prop.name.clone()); diff --git a/raphtory-tests/tests/test_filters.rs b/raphtory-tests/tests/test_filters.rs index a4bc92771c..5976a103ba 100644 --- a/raphtory-tests/tests/test_filters.rs +++ b/raphtory-tests/tests/test_filters.rs @@ -1647,32 +1647,38 @@ fn init_edges_graph_with_str_ids_del< mod test_node_filter { -use crate::{ + use crate::{ init_nodes_graph, init_nodes_graph_with_num_ids, init_nodes_graph_with_str_ids, IdentityGraphTransformer, }; + use proptest::proptest; use raphtory::{ - algorithms::alternating_mask::alternating_mask, core::entities::VID, db::{ - api::view::{Filter, filter_ops::NodeSelect}, - graph::{ - views::filter::{ - CreateFilter, model::{ - ComposableFilter, CompositeNodeFilter, NodeViewFilterOps, PropertyFilterFactory, TryAsCompositeFilter, ViewWrapOps, degree_filter::DegreeFilterFactory, node_filter::ops::{NodeFilterOps, NodeIdFilterOps}, property_filter::ops::{ListAggOps, PropertyFilterOps} - } + algorithms::alternating_mask::alternating_mask, + core::entities::VID, + db::{ + api::view::{filter_ops::NodeSelect, Filter}, + graph::views::filter::{ + model::{ + degree_filter::DegreeFilterFactory, + node_filter::ops::{NodeFilterOps, NodeIdFilterOps}, + property_filter::ops::{ElemQualifierOps, ListAggOps, PropertyFilterOps}, + ComposableFilter, CompositeNodeFilter, NodeViewFilterOps, + PropertyFilterFactory, TryAsCompositeFilter, ViewWrapOps, }, + CreateFilter, }, - }, errors::GraphError, prelude::{ - AdditionOps, Graph, GraphViewOps, NO_PROPS, NodeFilter, NodeStateOps, NodeViewOps, TimeOps - } + }, + errors::GraphError, + prelude::{ + AdditionOps, Graph, GraphViewOps, IntoProp, NodeFilter, NodeStateOps, NodeViewOps, + TimeOps, NO_PROPS, + }, }; + use raphtory_api::core::{entities::properties::prop::Prop, Direction}; use raphtory_tests::assertions::{ assert_filter_nodes_results, assert_search_nodes_results, assert_select_nodes_results, TestVariants, }; - use raphtory_api::core::{Direction, entities::properties::prop::Prop}; - use raphtory::prelude::IntoProp; - use raphtory::db::graph::views::filter::model::property_filter::ops::ElemQualifierOps; - use proptest::proptest; fn sort_vids(mut vids: Vec) -> Vec { vids.sort(); @@ -1717,7 +1723,8 @@ use crate::{ .map(|n| n.node) .collect::>(); - let expected_filter_nodes = candidates_with_history_after_filtering(graph, expected_select_nodes.clone()); + let expected_filter_nodes = + candidates_with_history_after_filtering(graph, expected_select_nodes.clone()); let filtered_event_graph = graph.filter(filter.clone()).unwrap(); let filtered_event_nodes = sort_vids( @@ -1799,7 +1806,6 @@ use crate::{ graph } - fn degree_graph_with_add_edge_only() -> Graph { let graph = Graph::new(); @@ -1844,7 +1850,6 @@ use crate::{ graph } - // Property-based tests for degree filtering proptest! { #[test] @@ -2033,7 +2038,7 @@ use crate::{ |d| d > threshold as usize && d < (threshold + 5) as usize, &format!("OUT > {} AND OUT < {}", threshold, threshold + 5), ); - } + } #[test] fn prop_degree_filter_or(threshold in 0u64..15) { @@ -2158,7 +2163,7 @@ use crate::{ &format!("OUT is_not_in({}, {})", val1, val2), ); } - } + } #[test] fn test_degree_filter_with_invalid_expressions() { @@ -13021,4 +13026,3 @@ mod test_edge_composite_filter { ); } } - diff --git a/raphtory/src/arrow_loader/df_loaders/nodes.rs b/raphtory/src/arrow_loader/df_loaders/nodes.rs index 732dd99630..1646a5f7b4 100644 --- a/raphtory/src/arrow_loader/df_loaders/nodes.rs +++ b/raphtory/src/arrow_loader/df_loaders/nodes.rs @@ -40,7 +40,8 @@ use crate::arrow_loader::df_loaders::build_progress_bar; use crate::arrow_loader::{ dataframe::{DFChunk, DFView}, df_loaders::{ - extract_secondary_index_col, process_shared_properties, resolve_nodes_and_type_with_cache, + extract_secondary_index_col, group_rows_by_vid_segment, process_shared_properties, + resolve_nodes_and_type_with_cache, secondary_index_at, }, layer_col::{lift_layer_col, lift_node_type_col, LayerCol}, node_col::NodeCol, @@ -49,7 +50,6 @@ use crate::arrow_loader::{ }; #[cfg(feature = "progress")] use kdam::BarExt; -use crate::arrow_loader::df_loaders::{group_rows_by_vid_segment, secondary_index_at}; /// If layer_id_col is provided, then layer_col must also be provided #[allow(clippy::too_many_arguments)] diff --git a/raphtory/src/db/api/state/ops/filter.rs b/raphtory/src/db/api/state/ops/filter.rs index 11c5a90747..25e4b70d47 100644 --- a/raphtory/src/db/api/state/ops/filter.rs +++ b/raphtory/src/db/api/state/ops/filter.rs @@ -2,18 +2,25 @@ use crate::{ db::{ api::{ state::{ - Index, ops::{Const, Degree, IntoDynNodeOp, NodeOp, TypeId} + ops::{Const, Degree, IntoDynNodeOp, NodeOp, TypeId}, + Index, }, view::internal::{GraphView, NodeList}, }, graph::{ create_node_type_filter, - views::filter::model::{FilterOperator, degree_filter::DegreeFilter, filter::{Filter, FilterValue}, node_filter::NodeFilter, property_filter::PropertyFilterValue}, + views::filter::model::{ + degree_filter::DegreeFilter, + filter::{Filter, FilterValue}, + node_filter::NodeFilter, + property_filter::PropertyFilterValue, + FilterOperator, + }, }, }, prelude::{GraphViewOps, PropertyFilter}, }; -use raphtory_api::core::entities::{VID, properties::prop::Prop}; +use raphtory_api::core::entities::{properties::prop::Prop, VID}; use raphtory_core::entities::nodes::node_ref::AsNodeRef; use raphtory_storage::graph::{graph::GraphStorage, nodes::node_storage_ops::NodeStorageOps}; use std::sync::Arc; @@ -225,19 +232,19 @@ impl NodeOp for NodePropertyFilterOp { pub struct NodeDegreeFilterOp { degree: Degree, operator: FilterOperator, - value: PropertyFilterValue + value: PropertyFilterValue, } impl NodeDegreeFilterOp { pub(crate) fn new(graph: G, filter: DegreeFilter) -> Self { let degree = Degree { dir: filter.direction, - view: graph + view: graph, }; Self { degree, operator: filter.operator, - value: filter.value + value: filter.value, } } } @@ -248,7 +255,8 @@ impl NodeOp for NodeDegreeFilterOp { fn apply(&self, storage: &GraphStorage, node: VID) -> Self::Output { let node_degree = self.degree.apply(storage, node); let node_degree_prop = Prop::U64(node_degree as u64); - self.operator.apply_to_property(&self.value, Some(&node_degree_prop)) + self.operator + .apply_to_property(&self.value, Some(&node_degree_prop)) } } diff --git a/raphtory/src/db/graph/views/filter/model/degree_filter.rs b/raphtory/src/db/graph/views/filter/model/degree_filter.rs index 18e5f3d463..ef6bc5c56f 100644 --- a/raphtory/src/db/graph/views/filter/model/degree_filter.rs +++ b/raphtory/src/db/graph/views/filter/model/degree_filter.rs @@ -1,24 +1,35 @@ -use std::collections::HashSet; -use std::sync::Arc; - -use raphtory_api::core::entities::properties::prop::PropType; -use raphtory_api::core::{Direction, entities::properties::prop::Prop}; -use raphtory_core::entities::{VID}; +use std::{collections::HashSet, sync::Arc}; + +use crate::{ + db::{ + api::{ + state::ops::{filter::NodeDegreeFilterOp, GraphView}, + view::{GraphViewOps, NodeViewOps}, + }, + graph::views::filter::{ + model, + model::{ + property_filter::{ + builders::{PropertyExprBuilder, PropertyExprBuilderInput}, + Op, PropertyFilter, PropertyFilterInput, PropertyFilterValue, PropertyRef, + }, + CombinedFilter, ComposableFilter, CompositeNodeFilter, EntityMarker, + FilterOperator, InternalPropertyFilterBuilder, NodeFilter, TryAsCompositeFilter, + }, + node_filtered_graph::NodeFilteredGraph, + CreateFilter, + }, + }, + errors::GraphError, +}; +use raphtory_api::core::{ + entities::properties::prop::{Prop, PropType}, + Direction, +}; +use raphtory_core::entities::VID; use raphtory_storage::graph::nodes::{node_ref::NodeStorageRef, node_storage_ops::NodeStorageOps}; -use crate::db::api::state::ops::GraphView; -use crate::db::api::state::ops::filter::NodeDegreeFilterOp; -use crate::db::graph::views::filter::CreateFilter; -use crate::db::graph::views::filter::model::{ComposableFilter, CompositeNodeFilter, NodeFilter}; -use crate::db::graph::views::filter::model::property_filter::{Op, PropertyFilterInput, PropertyRef, PropertyFilter}; -use crate::db::graph::views::filter::model::property_filter::builders::{PropertyExprBuilder, PropertyExprBuilderInput}; -use crate::db::graph::views::filter::model::{CombinedFilter, EntityMarker, InternalPropertyFilterBuilder, TryAsCompositeFilter}; -use crate::db::graph::views::filter::model; -use crate::db::graph::views::filter::node_filtered_graph::NodeFilteredGraph; -use crate::db::{api::view::{GraphViewOps, NodeViewOps}, graph::views::filter::model::{FilterOperator, property_filter::PropertyFilterValue}}; -use crate::errors::GraphError; use std::{fmt, fmt::Display}; - #[derive(Clone)] pub struct DegreeFilterBuilder { direction: Direction, @@ -42,7 +53,6 @@ pub struct DegreeFilter { pub ops: Vec, } - impl CreateFilter for DegreeFilter { type EntityFiltered<'graph, G: GraphViewOps<'graph>> = NodeFilteredGraph>; @@ -73,22 +83,30 @@ impl CreateFilter for DegreeFilter { )); } match self.operator { - FilterOperator::Eq | FilterOperator::Ne| FilterOperator::Gt | FilterOperator::Ge | FilterOperator::Lt | FilterOperator::Le | FilterOperator::IsIn | FilterOperator::IsNotIn => {}, + FilterOperator::Eq + | FilterOperator::Ne + | FilterOperator::Gt + | FilterOperator::Ge + | FilterOperator::Lt + | FilterOperator::Le + | FilterOperator::IsIn + | FilterOperator::IsNotIn => {} _ => { - return Err(GraphError::InvalidFilter( - format!("degree filter does not support operator {:?}", self.operator) - )); + return Err(GraphError::InvalidFilter(format!( + "degree filter does not support operator {:?}", + self.operator + ))); } } let value = match self.value { PropertyFilterValue::Single(ref prop_val) => { let casted_val = prop_val.clone().try_cast(PropType::U64).ok_or_else(|| { GraphError::InvalidFilter(format!( - "degree filter expects an integer value, got {}", + "degree filter expects an integer value, got {}", prop_val.to_string() )) })?; - + PropertyFilterValue::Single(casted_val) } PropertyFilterValue::Set(ref prop_vals) => { @@ -97,7 +115,7 @@ impl CreateFilter for DegreeFilter { .map(|val| { val.clone().try_cast(PropType::U64).ok_or_else(|| { GraphError::InvalidFilter(format!( - "degree filter expects an integer value, got {}", + "degree filter expects an integer value, got {}", val.to_string() )) }) @@ -108,11 +126,11 @@ impl CreateFilter for DegreeFilter { } PropertyFilterValue::None => { return Err(GraphError::InvalidFilter( - "degree filter requires a value".to_string() + "degree filter requires a value".to_string(), )); } - }; - let mut filter = self.clone(); + }; + let mut filter = self.clone(); filter.value = value; Ok(NodeDegreeFilterOp::new(graph, filter)) } @@ -126,19 +144,20 @@ impl CreateFilter for DegreeFilter { } impl TryAsCompositeFilter for DegreeFilter { - fn try_as_composite_edge_filter(&self) -> Result { - Err(GraphError::NotSupported) + fn try_as_composite_edge_filter( + &self, + ) -> Result { + Err(GraphError::NotSupported) } fn try_as_composite_exploded_edge_filter( &self, - ) -> Result - { - Err(GraphError::NotSupported) - } + ) -> Result { + Err(GraphError::NotSupported) + } fn try_as_composite_node_filter(&self) -> Result { Ok(CompositeNodeFilter::Degree(self.clone())) } -} +} fn property_ref(direction: &Direction) -> PropertyRef { match direction { @@ -150,7 +169,7 @@ fn property_ref(direction: &Direction) -> PropertyRef { impl InternalPropertyFilterBuilder for DegreeFilterBuilder where - DegreeFilter: CombinedFilter + DegreeFilter: CombinedFilter, { type Filter = DegreeFilter; type ExprBuilder = DegreeFilterBuilder; @@ -170,10 +189,10 @@ where fn filter(&self, filter: PropertyFilterInput) -> Self::Filter { DegreeFilter { - value: filter.prop_value, - direction: self.direction, - operator: filter.operator, - ops: filter.ops, + value: filter.prop_value, + direction: self.direction, + operator: filter.operator, + ops: filter.ops, } } @@ -187,7 +206,7 @@ where impl ComposableFilter for DegreeFilter {} pub trait DegreeFilterFactory { - fn in_degree(&self) -> DegreeFilterBuilder; + fn in_degree(&self) -> DegreeFilterBuilder; fn out_degree(&self) -> DegreeFilterBuilder; fn degree(&self) -> DegreeFilterBuilder; } @@ -203,4 +222,4 @@ impl Display for DegreeFilter { }; property_filter.fmt(f) } -} +} diff --git a/raphtory/src/db/graph/views/filter/model/mod.rs b/raphtory/src/db/graph/views/filter/model/mod.rs index ef20e4609e..b95369693f 100644 --- a/raphtory/src/db/graph/views/filter/model/mod.rs +++ b/raphtory/src/db/graph/views/filter/model/mod.rs @@ -56,6 +56,7 @@ use raphtory_api::core::{ use std::{ops::Deref, sync::Arc}; pub mod and_filter; +pub mod degree_filter; pub mod edge_filter; pub mod exploded_edge_filter; pub mod filter; @@ -75,8 +76,6 @@ pub mod or_filter; pub mod property_filter; pub mod snapshot_filter; pub mod windowed_filter; -pub mod degree_filter; - #[derive(Debug, Copy, Clone)] pub struct NoFilter; diff --git a/raphtory/src/db/graph/views/filter/model/node_filter/mod.rs b/raphtory/src/db/graph/views/filter/model/node_filter/mod.rs index 4dd4cc38fd..85bf52f82e 100644 --- a/raphtory/src/db/graph/views/filter/model/node_filter/mod.rs +++ b/raphtory/src/db/graph/views/filter/model/node_filter/mod.rs @@ -1,31 +1,47 @@ use crate::{ + api::core::Direction, db::{ api::{ state::{ - NodeStateValue, TypedNodeState, ops::{ - NodeOp, TypeId, filter::{ + ops::{ + filter::{ AndOp, MaskOp, NodeIdFilterOp, NodeNameFilterOp, NodeTypeFilterOp, NotOp, OrOp, - } - } + }, + NodeOp, TypeId, + }, + NodeStateValue, TypedNodeState, }, - view::{BoxableGraphView, internal::GraphView}, + view::{internal::GraphView, BoxableGraphView}, }, graph::views::filter::{ - CreateFilter, model::{ - AndFilter, CombinedFilter, ComposableFilter, CompositeExplodedEdgeFilter, EntityMarker, InternalPropertyFilterFactory, InternalViewWrapOps, NodeViewFilterOps, NotFilter, OrFilter, TryAsCompositeFilter, Wrap, degree_filter::{DegreeFilter, DegreeFilterBuilder}, edge_filter::CompositeEdgeFilter, filter::Filter, is_active_node_filter::IsActiveNode, latest_filter::Latest, layered_filter::Layered, node_filter::{ + model::{ + degree_filter::{DegreeFilter, DegreeFilterBuilder, DegreeFilterFactory}, + edge_filter::CompositeEdgeFilter, + filter::Filter, + is_active_node_filter::IsActiveNode, + latest_filter::Latest, + layered_filter::Layered, + node_filter::{ builders::{NodeIdFilterBuilder, NodeNameFilterBuilder, NodeTypeFilterBuilder}, validate::validate, - }, node_state_filter::NodeStateBoolColOp, property_filter::builders::{MetadataFilterBuilder, PropertyFilterBuilder}, snapshot_filter::{SnapshotAt, SnapshotLatest}, windowed_filter::Windowed - }, node_filtered_graph::NodeFilteredGraph + }, + node_state_filter::NodeStateBoolColOp, + property_filter::builders::{MetadataFilterBuilder, PropertyFilterBuilder}, + snapshot_filter::{SnapshotAt, SnapshotLatest}, + windowed_filter::Windowed, + AndFilter, CombinedFilter, ComposableFilter, CompositeExplodedEdgeFilter, + EntityMarker, InternalPropertyFilterFactory, InternalViewWrapOps, + NodeViewFilterOps, NotFilter, OrFilter, TryAsCompositeFilter, Wrap, + }, + node_filtered_graph::NodeFilteredGraph, + CreateFilter, }, }, errors::GraphError, prelude::{GraphViewOps, PropertyFilter}, }; use raphtory_api::core::storage::timeindex::EventTime; -use crate::api::core::Direction; -use crate::db::graph::views::filter::model::degree_filter::DegreeFilterFactory; use std::{fmt, fmt::Display, sync::Arc}; pub mod builders; @@ -106,19 +122,18 @@ impl InternalPropertyFilterFactory for NodeFilter { impl DegreeFilterFactory for NodeFilter { fn degree(&self) -> DegreeFilterBuilder { - DegreeFilterBuilder::new(Direction::BOTH) + DegreeFilterBuilder::new(Direction::BOTH) } fn in_degree(&self) -> DegreeFilterBuilder { - DegreeFilterBuilder::new(Direction::IN) + DegreeFilterBuilder::new(Direction::IN) } fn out_degree(&self) -> DegreeFilterBuilder { - DegreeFilterBuilder::new(Direction::OUT) + DegreeFilterBuilder::new(Direction::OUT) } } - impl NodeViewFilterOps for NodeFilter { type Output = T; diff --git a/raphtory/src/python/filter/node_filter_builders.rs b/raphtory/src/python/filter/node_filter_builders.rs index 84317343c8..1fd4147f11 100644 --- a/raphtory/src/python/filter/node_filter_builders.rs +++ b/raphtory/src/python/filter/node_filter_builders.rs @@ -1,8 +1,14 @@ use crate::{ db::graph::views::filter::model::{ - NodeViewFilterOps, PropertyFilterFactory, ViewWrapOps, degree_filter::DegreeFilterFactory, node_filter::{ - NodeFilter, builders::{NodeIdFilterBuilder, NodeNameFilterBuilder, NodeTypeFilterBuilder}, ops::{NodeFilterOps, NodeIdFilterOps} - }, node_state_filter::NodeStateBoolColOp, property_filter::builders::{MetadataFilterBuilder, PropertyFilterBuilder} + degree_filter::DegreeFilterFactory, + node_filter::{ + builders::{NodeIdFilterBuilder, NodeNameFilterBuilder, NodeTypeFilterBuilder}, + ops::{NodeFilterOps, NodeIdFilterOps}, + NodeFilter, + }, + node_state_filter::NodeStateBoolColOp, + property_filter::builders::{MetadataFilterBuilder, PropertyFilterBuilder}, + NodeViewFilterOps, PropertyFilterFactory, ViewWrapOps, }, python::{ filter::{