veilid6, begin commenting config w/ rustdoc
This commit is contained in:
parent
05fda67c14
commit
a7e9200c30
@ -6,6 +6,16 @@ use serde::*;
|
|||||||
pub type ConfigCallbackReturn = Result<Box<dyn core::any::Any + Send>, VeilidAPIError>;
|
pub type ConfigCallbackReturn = Result<Box<dyn core::any::Any + Send>, VeilidAPIError>;
|
||||||
pub type ConfigCallback = Arc<dyn Fn(String) -> ConfigCallbackReturn + Send + Sync>;
|
pub type ConfigCallback = Arc<dyn Fn(String) -> ConfigCallbackReturn + Send + Sync>;
|
||||||
|
|
||||||
|
/// Enable and configure HTTPS access to the Veilid node
|
||||||
|
///
|
||||||
|
/// ```yaml
|
||||||
|
/// https:
|
||||||
|
/// enabled: false
|
||||||
|
/// listen_address: ':5150'
|
||||||
|
/// path: 'app'
|
||||||
|
/// url: 'https://localhost:5150'
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
||||||
pub struct VeilidConfigHTTPS {
|
pub struct VeilidConfigHTTPS {
|
||||||
pub enabled: bool,
|
pub enabled: bool,
|
||||||
@ -14,6 +24,16 @@ pub struct VeilidConfigHTTPS {
|
|||||||
pub url: Option<String>, // Fixed URL is not optional for TLS-based protocols and is dynamically validated
|
pub url: Option<String>, // Fixed URL is not optional for TLS-based protocols and is dynamically validated
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Enable and configure HTTP access to the Veilid node
|
||||||
|
///
|
||||||
|
/// ```yaml
|
||||||
|
/// http:
|
||||||
|
/// enabled: false
|
||||||
|
/// listen_address: ':5150'
|
||||||
|
/// path: 'app"
|
||||||
|
/// url: 'https://localhost:5150'
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
||||||
pub struct VeilidConfigHTTP {
|
pub struct VeilidConfigHTTP {
|
||||||
pub enabled: bool,
|
pub enabled: bool,
|
||||||
@ -22,12 +42,28 @@ pub struct VeilidConfigHTTP {
|
|||||||
pub url: Option<String>,
|
pub url: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Application configuration
|
||||||
|
///
|
||||||
|
/// Configure web access to the Prograssive Web App (PWA)
|
||||||
|
///
|
||||||
|
/// To be implemented...
|
||||||
|
///
|
||||||
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
||||||
pub struct VeilidConfigApplication {
|
pub struct VeilidConfigApplication {
|
||||||
pub https: VeilidConfigHTTPS,
|
pub https: VeilidConfigHTTPS,
|
||||||
pub http: VeilidConfigHTTP,
|
pub http: VeilidConfigHTTP,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Enable and configure UDP
|
||||||
|
///
|
||||||
|
/// ```yaml
|
||||||
|
/// udp:
|
||||||
|
/// enabled: true
|
||||||
|
/// socket_pool_size: 0
|
||||||
|
/// listen_address: ':5150'
|
||||||
|
/// public_address: ''
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
||||||
pub struct VeilidConfigUDP {
|
pub struct VeilidConfigUDP {
|
||||||
pub enabled: bool,
|
pub enabled: bool,
|
||||||
@ -36,6 +72,16 @@ pub struct VeilidConfigUDP {
|
|||||||
pub public_address: Option<String>,
|
pub public_address: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Enable and configure TCP
|
||||||
|
///
|
||||||
|
/// ```yaml
|
||||||
|
/// tcp:
|
||||||
|
/// connect: true
|
||||||
|
/// listen: true
|
||||||
|
/// max_connections: 32
|
||||||
|
/// listen_address: ':5150'
|
||||||
|
/// public_address: ''
|
||||||
|
///
|
||||||
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
||||||
pub struct VeilidConfigTCP {
|
pub struct VeilidConfigTCP {
|
||||||
pub connect: bool,
|
pub connect: bool,
|
||||||
@ -45,6 +91,17 @@ pub struct VeilidConfigTCP {
|
|||||||
pub public_address: Option<String>,
|
pub public_address: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Enable and configure Web Sockets
|
||||||
|
///
|
||||||
|
/// ```yaml
|
||||||
|
/// ws:
|
||||||
|
/// connect: true
|
||||||
|
/// listen: true
|
||||||
|
/// max_connections: 16
|
||||||
|
/// listen_address: ':5150'
|
||||||
|
/// path: 'ws'
|
||||||
|
/// url: 'ws://localhost:5150/ws'
|
||||||
|
///
|
||||||
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
||||||
pub struct VeilidConfigWS {
|
pub struct VeilidConfigWS {
|
||||||
pub connect: bool,
|
pub connect: bool,
|
||||||
@ -55,6 +112,17 @@ pub struct VeilidConfigWS {
|
|||||||
pub url: Option<String>,
|
pub url: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Enable and configure Secure Web Sockets
|
||||||
|
///
|
||||||
|
/// ```yaml
|
||||||
|
/// wss:
|
||||||
|
/// connect: true
|
||||||
|
/// listen: false
|
||||||
|
/// max_connections: 16
|
||||||
|
/// listen_address: ':5150'
|
||||||
|
/// path: 'ws'
|
||||||
|
/// url: ''
|
||||||
|
///
|
||||||
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
||||||
pub struct VeilidConfigWSS {
|
pub struct VeilidConfigWSS {
|
||||||
pub connect: bool,
|
pub connect: bool,
|
||||||
@ -65,6 +133,13 @@ pub struct VeilidConfigWSS {
|
|||||||
pub url: Option<String>, // Fixed URL is not optional for TLS-based protocols and is dynamically validated
|
pub url: Option<String>, // Fixed URL is not optional for TLS-based protocols and is dynamically validated
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Configure Network Protocols
|
||||||
|
///
|
||||||
|
/// Veilid can communicate over UDP, TCP, and Web Sockets.
|
||||||
|
///
|
||||||
|
/// All protocols are available by default, and the Veilid node will
|
||||||
|
/// sort out which protocol is used for each peer connection.
|
||||||
|
///
|
||||||
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
||||||
pub struct VeilidConfigProtocol {
|
pub struct VeilidConfigProtocol {
|
||||||
pub udp: VeilidConfigUDP,
|
pub udp: VeilidConfigUDP,
|
||||||
@ -73,6 +148,14 @@ pub struct VeilidConfigProtocol {
|
|||||||
pub wss: VeilidConfigWSS,
|
pub wss: VeilidConfigWSS,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Configure TLS
|
||||||
|
///
|
||||||
|
/// ```yaml
|
||||||
|
/// tls:
|
||||||
|
/// certificate_path: /path/to/cert
|
||||||
|
/// private_key_path: /path/to/private/key
|
||||||
|
/// connection_initial_timeout_ms: 2000
|
||||||
|
///
|
||||||
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
||||||
pub struct VeilidConfigTLS {
|
pub struct VeilidConfigTLS {
|
||||||
pub certificate_path: String,
|
pub certificate_path: String,
|
||||||
@ -80,6 +163,8 @@ pub struct VeilidConfigTLS {
|
|||||||
pub connection_initial_timeout_ms: u32,
|
pub connection_initial_timeout_ms: u32,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Configure the Distributed Hash Table (DHT)
|
||||||
|
///
|
||||||
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
||||||
pub struct VeilidConfigDHT {
|
pub struct VeilidConfigDHT {
|
||||||
pub resolve_node_timeout_ms: Option<u32>,
|
pub resolve_node_timeout_ms: Option<u32>,
|
||||||
@ -97,6 +182,8 @@ pub struct VeilidConfigDHT {
|
|||||||
pub validate_dial_info_receipt_time_ms: u32,
|
pub validate_dial_info_receipt_time_ms: u32,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Configure RPC
|
||||||
|
///
|
||||||
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
||||||
pub struct VeilidConfigRPC {
|
pub struct VeilidConfigRPC {
|
||||||
pub concurrency: u32,
|
pub concurrency: u32,
|
||||||
@ -107,6 +194,8 @@ pub struct VeilidConfigRPC {
|
|||||||
pub max_route_hop_count: u8,
|
pub max_route_hop_count: u8,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Configure the network routing table
|
||||||
|
///
|
||||||
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
|
||||||
pub struct VeilidConfigRoutingTable {
|
pub struct VeilidConfigRoutingTable {
|
||||||
pub limit_over_attached: u32,
|
pub limit_over_attached: u32,
|
||||||
|
Loading…
Reference in New Issue
Block a user