47 lines
1020 B
Rust
47 lines
1020 B
Rust
//! Binary entrypoint for the RVF streaming server.
|
|
|
|
use clap::Parser;
|
|
use std::path::PathBuf;
|
|
|
|
use rvf_server::ServerConfig;
|
|
|
|
#[derive(Parser)]
|
|
#[command(
|
|
name = "rvf-server",
|
|
about = "RuVector Format TCP/HTTP streaming server"
|
|
)]
|
|
struct Cli {
|
|
/// HTTP listen port
|
|
#[arg(long, default_value_t = 8080)]
|
|
port: u16,
|
|
|
|
/// TCP streaming listen port
|
|
#[arg(long, default_value_t = 9090)]
|
|
tcp_port: u16,
|
|
|
|
/// Path to the RVF data directory / file
|
|
#[arg(long, default_value = "data.rvf")]
|
|
data_dir: PathBuf,
|
|
|
|
/// Vector dimension (used when creating a new store)
|
|
#[arg(long, default_value_t = 128)]
|
|
dimension: u16,
|
|
}
|
|
|
|
#[tokio::main]
|
|
async fn main() {
|
|
let cli = Cli::parse();
|
|
|
|
let config = ServerConfig {
|
|
http_port: cli.port,
|
|
tcp_port: cli.tcp_port,
|
|
data_path: cli.data_dir,
|
|
dimension: cli.dimension,
|
|
};
|
|
|
|
if let Err(e) = rvf_server::run(config).await {
|
|
eprintln!("fatal: {e}");
|
|
std::process::exit(1);
|
|
}
|
|
}
|