28个版本 (11个稳定版)
1.1.5 | 2024年7月1日 |
---|---|
1.1.3 | 2024年1月18日 |
1.1.2 | 2023年3月6日 |
0.3.2 | 2022年5月25日 |
0.2.7 | 2020年10月30日 |
#136 in 异步
1,298 下载/每月
74KB
1.5K SLoC
kcpserver
最好的RUST KCP服务器框架 (The best rust kcp server framework)
示例 Echo
use kcpserver::prelude::{
kcp_module::{KcpConfig, KcpNoDelayConfig},
*,
};
use tokio::io::AsyncReadExt;
use log::LevelFilter;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
env_logger::Builder::new()
.filter_level(LevelFilter::Debug)
.init();
let mut config = KcpConfig::default();
config.nodelay = Some(KcpNoDelayConfig::fastest());
let kcp_server = KcpListener::new("0.0.0.0:5555", config, 1, |peer| async move {
log::debug!("create kcp peer:{}", peer);
let mut buf = [0; 1024];
let mut reader = peer.get_reader();
let mut writer = peer.get_writer();
while let Ok(size) = reader.read(&mut buf).await {
log::debug!("read peer:{} buff:{}", peer, size);
writer.write_all(&buf[..size]).await?;
writer.flush().await?;
}
writer.shutdown().await?;
log::debug!("kcp peer:{} closed", peer.to_string());
Ok(())
})?;
kcp_server.start().await?;
Ok(())
}
依赖
~5–13MB
~132K SLoC