Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/ci-master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ jobs:
git clone --depth 1 https://github.com/AdaWorldAPI/crewai-rust.git ../crewai-rust
git clone --depth 1 https://github.com/AdaWorldAPI/n8n-rs.git ../n8n-rs

- name: Install protoc (lance-encoding 13 build script)
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler libprotobuf-dev
- uses: dtolnay/rust-toolchain@master
with:
toolchain: "1.99.0"
Expand Down Expand Up @@ -64,6 +66,8 @@ jobs:
git clone --depth 1 https://github.com/AdaWorldAPI/crewai-rust.git ../crewai-rust
git clone --depth 1 https://github.com/AdaWorldAPI/n8n-rs.git ../n8n-rs

- name: Install protoc (lance-encoding 13 build script)
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler libprotobuf-dev
- uses: dtolnay/rust-toolchain@master
with:
toolchain: "1.99.0"
Expand Down Expand Up @@ -98,6 +102,8 @@ jobs:
git clone --depth 1 https://github.com/AdaWorldAPI/crewai-rust.git ../crewai-rust
git clone --depth 1 https://github.com/AdaWorldAPI/n8n-rs.git ../n8n-rs

- name: Install protoc (lance-encoding 13 build script)
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler libprotobuf-dev
- uses: dtolnay/rust-toolchain@master
with:
toolchain: "1.99.0"
Expand Down
12 changes: 12 additions & 0 deletions .github/workflows/proof.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ jobs:
git clone --depth 1 https://github.com/AdaWorldAPI/crewai-rust.git ../crewai-rust
git clone --depth 1 https://github.com/AdaWorldAPI/n8n-rs.git ../n8n-rs

- name: Install protoc (lance-encoding 13 build script)
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler libprotobuf-dev
- uses: dtolnay/rust-toolchain@master
with:
toolchain: "1.99.0"
Expand All @@ -87,6 +89,8 @@ jobs:
git clone --depth 1 https://github.com/AdaWorldAPI/crewai-rust.git ../crewai-rust
git clone --depth 1 https://github.com/AdaWorldAPI/n8n-rs.git ../n8n-rs

- name: Install protoc (lance-encoding 13 build script)
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler libprotobuf-dev
- uses: dtolnay/rust-toolchain@master
with:
toolchain: "1.99.0"
Expand All @@ -111,6 +115,8 @@ jobs:
git clone --depth 1 https://github.com/AdaWorldAPI/crewai-rust.git ../crewai-rust
git clone --depth 1 https://github.com/AdaWorldAPI/n8n-rs.git ../n8n-rs

- name: Install protoc (lance-encoding 13 build script)
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler libprotobuf-dev
- uses: dtolnay/rust-toolchain@master
with:
toolchain: "1.99.0"
Expand All @@ -135,6 +141,8 @@ jobs:
git clone --depth 1 https://github.com/AdaWorldAPI/crewai-rust.git ../crewai-rust
git clone --depth 1 https://github.com/AdaWorldAPI/n8n-rs.git ../n8n-rs

- name: Install protoc (lance-encoding 13 build script)
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler libprotobuf-dev
- uses: dtolnay/rust-toolchain@master
with:
toolchain: "1.99.0"
Expand All @@ -159,6 +167,8 @@ jobs:
git clone --depth 1 https://github.com/AdaWorldAPI/crewai-rust.git ../crewai-rust
git clone --depth 1 https://github.com/AdaWorldAPI/n8n-rs.git ../n8n-rs

- name: Install protoc (lance-encoding 13 build script)
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler libprotobuf-dev
- uses: dtolnay/rust-toolchain@master
with:
toolchain: "1.99.0"
Expand All @@ -183,6 +193,8 @@ jobs:
git clone --depth 1 https://github.com/AdaWorldAPI/crewai-rust.git ../crewai-rust
git clone --depth 1 https://github.com/AdaWorldAPI/n8n-rs.git ../n8n-rs

- name: Install protoc (lance-encoding 13 build script)
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler libprotobuf-dev
- uses: dtolnay/rust-toolchain@master
with:
toolchain: "1.99.0"
Expand Down
44 changes: 25 additions & 19 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -73,34 +73,40 @@ ladybug-contract = { path = "crates/ladybug-contract" }
# -----------------------------------------------------------------------------
# Storage: LanceDB + Arrow ecosystem
# Lance 2.0.0 released on crates.io (Feb 5, 2026).
# NOT bumped to 12 in the 2026-09-25 sweep: lance 12 requires arrow ^58 /
# datafusion ^54, and this crate is on arrow 57 / datafusion 51. The lance
# bump lands together with that migration, never alone.
# Arrow 57.x aligns with DataFusion 52 / Lance 2.x.
# 2026-10-10: lance 13 lands together with arrow 58 / datafusion 54, as the
# 2026-09-25 note required (lance 12+ needs arrow ^58 / datafusion ^54). The
# n8n vendor crates stay on their own arrow line: no arrow type crosses the
# n8n boundary (only n8n_grpc's string/bytes handlers), so cargo carries both.
# -----------------------------------------------------------------------------
lance = { version = "2.0", optional = true, default-features = false }
arrow = { version = "57", features = ["ffi"] }
arrow-array = "57"
arrow-schema = "57"
arrow-buffer = "57"
arrow-data = "57"
arrow-cast = "57"
arrow-select = "57"
parquet = { version = "57", features = ["snap", "lz4", "zstd"] }
arrow-flight = { version = "57", features = ["flight-sql-experimental"], optional = true }
arrow-ipc = "57"
lance = { version = "13.*", optional = true, default-features = false }
arrow = { version = "58", features = ["ffi"] }
arrow-array = "58"
arrow-schema = "58"
arrow-buffer = "58"
arrow-data = "58"
arrow-cast = "58"
arrow-select = "58"
parquet = { version = "58", features = ["snap", "lz4", "zstd"] }
arrow-flight = { version = "58", features = ["flight-sql-experimental"], optional = true }
arrow-ipc = "58"
# tonic/prost must match arrow-flight's versions (0.14.1)
tonic = { version = "0.14", optional = true }
prost = { version = "0.14", optional = true }
bytes = "1.11"

# -----------------------------------------------------------------------------
# Query: DataFusion SQL engine
# DataFusion 51.x - upgrade to 52 when liblzma conflict fixed
# To use DF 52: uncomment patch below and set datafusion = "52"
# DataFusion 54 (lance 13 requires ^54).
# -----------------------------------------------------------------------------
datafusion = "51"
sqlparser = "0.60"
# Default features minus `compression`: that feature links `lzma` via
# liblzma, and the n8n vendor crates (datafusion 51) link it via xz2 -- cargo
# allows one `links = "lzma"` per graph. lance 13 itself does not use it.
datafusion = { version = "54", default-features = false, features = [
"nested_expressions", "crypto_expressions", "datetime_expressions",
"encoding_expressions", "regex_expressions", "string_expressions",
"unicode_expressions", "parquet", "recursive_protection", "sql",
] }
sqlparser = "0.62"

# -----------------------------------------------------------------------------
# Graph: Neo4j driver
Expand Down
37 changes: 0 additions & 37 deletions src/query/cognitive_udfs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
//! - `nars_abduction(f1, c1, f2, c2)` -> Abduction truth function
//! - `nars_revision(f1, c1, f2, c2)` -> Revision truth function

use std::any::Any;
use std::sync::Arc;

use arrow::array::*;
Expand Down Expand Up @@ -196,9 +195,6 @@ impl Default for HammingUdf {
}

impl ScalarUDFImpl for HammingUdf {
fn as_any(&self) -> &dyn Any {
self
}

fn name(&self) -> &str {
"hamming"
Expand Down Expand Up @@ -310,9 +306,6 @@ impl Default for SimilarityUdf {
}

impl ScalarUDFImpl for SimilarityUdf {
fn as_any(&self) -> &dyn Any {
self
}

fn name(&self) -> &str {
"similarity"
Expand Down Expand Up @@ -425,9 +418,6 @@ impl Default for PopcountUdf {
}

impl ScalarUDFImpl for PopcountUdf {
fn as_any(&self) -> &dyn Any {
self
}

fn name(&self) -> &str {
"popcount"
Expand Down Expand Up @@ -542,9 +532,6 @@ impl Default for XorBindUdf {
}

impl ScalarUDFImpl for XorBindUdf {
fn as_any(&self) -> &dyn Any {
self
}

fn name(&self) -> &str {
"xor_bind"
Expand Down Expand Up @@ -613,9 +600,6 @@ impl Default for ExtractScentUdf {
}

impl ScalarUDFImpl for ExtractScentUdf {
fn as_any(&self) -> &dyn Any {
self
}

fn name(&self) -> &str {
"extract_scent"
Expand Down Expand Up @@ -705,9 +689,6 @@ impl Default for ScentDistanceUdf {
}

impl ScalarUDFImpl for ScentDistanceUdf {
fn as_any(&self) -> &dyn Any {
self
}

fn name(&self) -> &str {
"scent_distance"
Expand Down Expand Up @@ -809,9 +790,6 @@ impl Default for NarsDeductionUdf {
}

impl ScalarUDFImpl for NarsDeductionUdf {
fn as_any(&self) -> &dyn Any {
self
}

fn name(&self) -> &str {
"nars_deduction"
Expand Down Expand Up @@ -876,9 +854,6 @@ impl Default for NarsInductionUdf {
}

impl ScalarUDFImpl for NarsInductionUdf {
fn as_any(&self) -> &dyn Any {
self
}

fn name(&self) -> &str {
"nars_induction"
Expand Down Expand Up @@ -943,9 +918,6 @@ impl Default for NarsAbductionUdf {
}

impl ScalarUDFImpl for NarsAbductionUdf {
fn as_any(&self) -> &dyn Any {
self
}

fn name(&self) -> &str {
"nars_abduction"
Expand Down Expand Up @@ -1016,9 +988,6 @@ impl Default for NarsRevisionUdf {
}

impl ScalarUDFImpl for NarsRevisionUdf {
fn as_any(&self) -> &dyn Any {
self
}

fn name(&self) -> &str {
"nars_revision"
Expand Down Expand Up @@ -1138,9 +1107,6 @@ impl Default for MembraneEncodeUdf {
}

impl ScalarUDFImpl for MembraneEncodeUdf {
fn as_any(&self) -> &dyn Any {
self
}

fn name(&self) -> &str {
"membrane_encode"
Expand Down Expand Up @@ -1225,9 +1191,6 @@ impl Default for MembraneDecodeUdf {
}

impl ScalarUDFImpl for MembraneDecodeUdf {
fn as_any(&self) -> &dyn Any {
self
}

fn name(&self) -> &str {
"membrane_decode"
Expand Down
14 changes: 3 additions & 11 deletions src/query/dn_tree_provider.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
//! After BindSpace Unification, this provider reads directly from BindSpace
//! via the DnIndex — no separate DnSpineCache needed.

use std::any::Any;
use std::sync::Arc;

use arrow::array::*;
Expand Down Expand Up @@ -98,9 +97,6 @@ impl DnTreeTableProvider {

#[async_trait]
impl TableProvider for DnTreeTableProvider {
fn as_any(&self) -> &dyn Any {
self
}

fn schema(&self) -> SchemaRef {
self.schema.clone()
Expand Down Expand Up @@ -140,7 +136,7 @@ impl TableProvider for DnTreeTableProvider {
projected_schema,
bind_space: self.bind_space.clone(),
projection: projection.cloned(),
properties,
properties: Arc::new(properties),
}))
}
}
Expand All @@ -154,7 +150,7 @@ struct DnTreeScan {
projected_schema: SchemaRef,
bind_space: Arc<RwLock<BindSpace>>,
projection: Option<Vec<usize>>,
properties: PlanProperties,
properties: Arc<PlanProperties>,
}

impl std::fmt::Debug for DnTreeScan {
Expand All @@ -178,15 +174,11 @@ impl ExecutionPlan for DnTreeScan {
"DnTreeScan"
}

fn as_any(&self) -> &dyn Any {
self
}

fn schema(&self) -> SchemaRef {
self.projected_schema.clone()
}

fn properties(&self) -> &PlanProperties {
fn properties(&self) -> &Arc<PlanProperties> {
&self.properties
}

Expand Down
14 changes: 3 additions & 11 deletions src/query/fingerprint_table.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
//! - access_count: UINT32
//! - zone: UTF8 ('surface', 'fluid', 'node')

use std::any::Any;
use std::sync::Arc;

use arrow::array::*;
Expand Down Expand Up @@ -111,9 +110,6 @@ impl std::fmt::Debug for FingerprintTableProvider {

#[async_trait]
impl TableProvider for FingerprintTableProvider {
fn as_any(&self) -> &dyn Any {
self
}

fn schema(&self) -> SchemaRef {
self.schema.clone()
Expand Down Expand Up @@ -148,7 +144,7 @@ pub struct BindSpaceScan {
projected_schema: SchemaRef,
bind_space: Arc<RwLock<BindSpace>>,
projection: Option<Vec<usize>>,
properties: PlanProperties,
properties: Arc<PlanProperties>,
}

impl std::fmt::Debug for BindSpaceScan {
Expand Down Expand Up @@ -187,7 +183,7 @@ impl BindSpaceScan {
projected_schema,
bind_space,
projection,
properties,
properties: Arc::new(properties),
}
}
}
Expand All @@ -203,15 +199,11 @@ impl ExecutionPlan for BindSpaceScan {
"BindSpaceScan"
}

fn as_any(&self) -> &dyn Any {
self
}

fn schema(&self) -> SchemaRef {
self.projected_schema.clone()
}

fn properties(&self) -> &PlanProperties {
fn properties(&self) -> &Arc<PlanProperties> {
&self.properties
}

Expand Down
Loading
Loading