pub mod handler;
pub use handler::{StandaloneHandler, handle_cmd, handle_cmd_with_ctx};
pub use webc_cmd::{Cmd, ConnectionContext, ExpireCondition, RedisCommand, RedisServer};
use std::sync::Arc;
use tokio::signal::ctrl_c;
use wedb_embed::WeDb;
pub async fn run_server(addr: &str, data_dir: &str) -> aok::Result<()> {
let db = Arc::new(WeDb::open(data_dir)?);
let handler = Arc::new(StandaloneHandler::new(db));
let server = RedisServer::start(handler, addr.to_string()).await?;
log::info!(
"WeDB Standalone Redis server listening on {}",
server.addr()
);
let _ = ctrl_c().await;
server.shutdown().await?;
Ok(())
}