10 releases
0.5.0 | Apr 29, 2021 |
---|---|
0.4.3 | Feb 10, 2020 |
0.4.1 | Jan 6, 2020 |
0.3.1 | Aug 8, 2018 |
0.1.0 | Jul 25, 2016 |
#1884 in Database interfaces
22 downloads per month
22KB
434 lines
linebased
Drop-in TCP command server
About
Simple line-based TCP server for implementing command interfaces. There's no authentication or TLS support. Commands are handled synchronously as in Redis. The server uses an event loop internally to multiplex client connections.
Usage
This example is kept up-to-date on a best-effort basis. For a guaranteed acurate example, please see the docs.
#[tokio::main]
async fn main() {
let config = Config::default()
.host("127.0.0.1")
.port(5555)
.max_clients(32)
.client_buf_size(1024);
let mut server = Server::new(config, |query| {
match query {
"version" => String::from("0.1.0"),
_ => String::from("unknown command"),
}
}).unwrap();
server.run().await.unwrap();
}
This can be accessed over netcat like so:
jwilm@jwilm-desk ➜ nc localhost 5555
arst
unknown command
version
0.1.0
Dependencies
~3–11MB
~110K SLoC