Skip to main content

ruvector_dag/
lib.rs

1//! RuVector DAG - Directed Acyclic Graph structures for query plan optimization
2//!
3//! This crate provides efficient DAG data structures and algorithms for representing
4//! and manipulating query execution plans with neural learning capabilities.
5//!
6//! ## Features
7//!
8//! - **DAG Data Structures**: Efficient directed acyclic graph representation for query plans
9//! - **7 Attention Mechanisms**: Topological, Causal Cone, Critical Path, MinCut Gated, and more
10//! - **SONA Learning**: Self-Optimizing Neural Architecture with MicroLoRA adaptation (non-WASM only)
11//! - **MinCut Optimization**: Subpolynomial O(n^0.12) bottleneck detection
12//! - **Self-Healing**: Autonomous anomaly detection and repair (non-WASM only)
13//! - **QuDAG Integration**: Quantum-resistant distributed pattern learning (non-WASM only)
14//!
15//! ## Quick Start
16//!
17//! ```rust
18//! use ruvector_dag::{QueryDag, OperatorNode, OperatorType};
19//! use ruvector_dag::attention::{TopologicalAttention, DagAttention};
20//!
21//! // Build a query DAG
22//! let mut dag = QueryDag::new();
23//! let scan = dag.add_node(OperatorNode::seq_scan(0, "users"));
24//! let filter = dag.add_node(OperatorNode::filter(1, "age > 18"));
25//! dag.add_edge(scan, filter).unwrap();
26//!
27//! // Compute attention scores
28//! let attention = TopologicalAttention::new(Default::default());
29//! let scores = attention.forward(&dag).unwrap();
30//! ```
31//!
32//! ## Modules
33//!
34//! - [`dag`] - Core DAG data structures and algorithms
35//! - [`attention`] - Neural attention mechanisms for node importance
36//! - [`sona`] - Self-Optimizing Neural Architecture with adaptive learning (requires `full` feature)
37//! - [`mincut`] - Subpolynomial bottleneck detection and optimization
38//! - [`healing`] - Self-healing system with anomaly detection (requires `full` feature)
39//! - [`qudag`] - QuDAG network integration for distributed learning (requires `full` feature)
40
41// Core modules (always available)
42pub mod attention;
43pub mod dag;
44pub mod mincut;
45
46// Modules requiring async runtime (non-WASM only)
47#[cfg(feature = "full")]
48pub mod healing;
49#[cfg(feature = "full")]
50pub mod qudag;
51#[cfg(feature = "full")]
52pub mod sona;
53
54pub use dag::{
55    BfsIterator, DagDeserializer, DagError, DagSerializer, DfsIterator, OperatorNode, OperatorType,
56    QueryDag, TopologicalIterator,
57};
58
59pub use mincut::{
60    Bottleneck, BottleneckAnalysis, DagMinCutEngine, FlowEdge, LocalKCut, MinCutConfig,
61    MinCutResult, RedundancyStrategy, RedundancySuggestion,
62};
63
64pub use attention::{
65    AttentionConfig, AttentionError, AttentionScores, CausalConeAttention, CausalConeConfig,
66    CriticalPathAttention, CriticalPathConfig, DagAttention, FlowCapacity,
67    MinCutConfig as AttentionMinCutConfig, MinCutGatedAttention, TopologicalAttention,
68    TopologicalConfig,
69};
70
71#[cfg(feature = "full")]
72pub use qudag::QuDagClient;
73
74// Re-export crypto security functions for easy access (requires full feature)
75#[cfg(feature = "full")]
76pub use qudag::crypto::{
77    check_crypto_security, is_production_ready, security_status, SecurityStatus,
78};
79
80#[cfg(feature = "full")]
81pub use healing::{
82    Anomaly, AnomalyConfig, AnomalyDetector, AnomalyType, DriftMetric, DriftTrend,
83    HealingCycleResult, HealingOrchestrator, HealthStatus, IndexCheckResult, IndexHealth,
84    IndexHealthChecker, IndexThresholds, IndexType, LearningDriftDetector, RepairResult,
85    RepairStrategy,
86};
87
88#[cfg(feature = "full")]
89pub use sona::{
90    DagPattern, DagReasoningBank, DagSonaEngine, DagTrajectory, DagTrajectoryBuffer, EwcConfig,
91    EwcPlusPlus, MicroLoRA, MicroLoRAConfig, ReasoningBankConfig,
92};
93
94#[cfg(test)]
95mod tests {
96    use super::*;
97
98    #[test]
99    fn test_basic_dag_creation() {
100        let dag = QueryDag::new();
101        assert_eq!(dag.node_count(), 0);
102        assert_eq!(dag.edge_count(), 0);
103    }
104}