ruvector_attention_node/
lib.rs1#![deny(clippy::all)]
13
14use napi_derive::napi;
15
16pub mod async_ops;
17pub mod attention;
18pub mod graph;
19pub mod training;
20
21pub use attention::{
23 AttentionConfig, DotProductAttention, FlashAttention, HyperbolicAttention, LinearAttention,
24 LocalGlobalAttention, MoEAttention, MoEConfig, MultiHeadAttention,
25};
26
27pub use training::{
29 AdamOptimizer, AdamWOptimizer, CurriculumScheduler, CurriculumStageConfig, DecayType,
30 HardNegativeMiner, InBatchMiner, InfoNCELoss, LearningRateScheduler, LocalContrastiveLoss,
31 LossWithGradients, MiningStrategy, SGDOptimizer, SpectralRegularization, TemperatureAnnealing,
32};
33
34pub use async_ops::{
36 AttentionType, BatchConfig, BatchResult, BenchmarkResult, ParallelConfig, StreamProcessor,
37};
38
39pub use graph::{
41 DualSpaceAttention, DualSpaceConfig, EdgeFeaturedAttention, EdgeFeaturedConfig,
42 GraphRoPEAttention, RoPEConfig,
43};
44
45#[napi]
47pub fn version() -> String {
48 env!("CARGO_PKG_VERSION").to_string()
49}
50
51#[napi]
53pub fn info() -> LibraryInfo {
54 LibraryInfo {
55 name: "ruvector-attention-node".to_string(),
56 version: env!("CARGO_PKG_VERSION").to_string(),
57 description: "Node.js bindings for ruvector-attention".to_string(),
58 features: vec![
59 "scaled-dot-product".to_string(),
60 "multi-head".to_string(),
61 "hyperbolic".to_string(),
62 "flash".to_string(),
63 "linear".to_string(),
64 "local-global".to_string(),
65 "moe".to_string(),
66 "edge-featured".to_string(),
67 "graph-rope".to_string(),
68 "dual-space".to_string(),
69 "training".to_string(),
70 "async".to_string(),
71 "batch".to_string(),
72 "benchmark".to_string(),
73 ],
74 }
75}
76
77#[napi(object)]
79pub struct LibraryInfo {
80 pub name: String,
81 pub version: String,
82 pub description: String,
83 pub features: Vec<String>,
84}