36 lines
1.6 KiB
Rust
36 lines
1.6 KiB
Rust
//! LightningStor Storage Node
|
|
//!
|
|
//! This crate implements a storage node for the LightningStor distributed
|
|
//! storage system. Each node stores chunks of data and responds to requests
|
|
//! from the main server for put, get, and delete operations.
|
|
//!
|
|
//! # Architecture
|
|
//!
|
|
//! ```text
|
|
//! ┌─────────────────────────────────────────────────────┐
|
|
//! │ LightningStor Server │
|
|
//! │ (Erasure Coding / Replication Coordination) │
|
|
//! └───────────┬───────────────┬───────────────┬─────────┘
|
|
//! │ │ │
|
|
//! ▼ ▼ ▼
|
|
//! ┌───────────┐ ┌───────────┐ ┌───────────┐
|
|
//! │ Node 1 │ │ Node 2 │ │ Node 3 │
|
|
//! │ (gRPC) │ │ (gRPC) │ │ (gRPC) │
|
|
//! └───────────┘ └───────────┘ └───────────┘
|
|
//! ```
|
|
|
|
pub mod config;
|
|
pub mod service;
|
|
pub mod storage;
|
|
|
|
pub use config::NodeConfig;
|
|
pub use service::NodeServiceImpl;
|
|
pub use storage::LocalChunkStore;
|
|
|
|
/// Re-export generated protobuf types
|
|
pub mod proto {
|
|
tonic::include_proto!("lightningstor.node.v1");
|
|
}
|
|
|
|
pub use proto::node_service_client::NodeServiceClient;
|
|
pub use proto::node_service_server::{NodeService, NodeServiceServer};
|