kcp_ovo/
lib.rs

1//! # KCP - 快速可靠ARQ协议的Rust实现
2//!
3//! 这是一个纯Rust实现的KCP协议,完整复刻了原版C代码的功能。
4//! KCP是一个低延迟、高可靠性的传输层协议,相比TCP可以降低30%-40%的延迟。
5//!
6//! ## 特性
7//!
8//! - 纯Rust实现,无FFI依赖
9//! - 使用mimalloc全局分配器优化内存性能
10//! - 类型安全,内存安全
11//! - 详细的中文文档注释
12//! - 完整的KCP协议功能
13//!
14//! ## 快速开始
15//!
16//! ```ignore
17//! use kcp_ovo::{Kcp, KcpConfig};
18//!
19//! // 创建KCP实例
20//! let mut kcp = Kcp::new(0x11223344, KcpConfig::default())?;
21//!
22//! // 设置输出回调
23//! kcp.set_output(|data, kcp| {
24//!     // 通过UDP发送数据
25//!     udp_socket.send_to(data, remote_addr)?;
26//!     Ok(data.len())
27//! });
28//!
29//! // 发送数据
30//! kcp.send(b"Hello, KCP!")?;
31//! ```
32
33// 使用mimalloc作为全局内存分配器
34use mimalloc::MiMalloc;
35
36#[global_allocator]
37static GLOBAL: MiMalloc = MiMalloc;
38
39// 模块声明
40pub mod codec;
41pub mod config;
42pub mod core;
43pub mod error;
44pub mod helper;
45pub mod queue;
46
47// Stream API (feature-gated)
48#[cfg(feature = "stream")]
49pub mod stream;
50
51// 其他模块将在后续添加
52// pub mod reliability;
53// pub mod congestion;
54
55// 导出公共API
56pub use crate::config::KcpConfig;
57pub use crate::core::{Kcp, KcpCmd};
58pub use crate::error::{KcpError, KcpResult};
59pub use crate::queue::{KcpDeque, Segment};
60
61// 导出Stream API (当stream feature启用时)
62#[cfg(feature = "stream")]
63pub use crate::stream::{KcpListener, KcpStream, StreamConfig};
64
65// 预导入模块
66// pub mod prelude {
67//     pub use crate::{Kcp, KcpConfig, KcpResult, KcpError, KcpCmd};
68// }