#tcp-stream #stream #silkroad #tcp #tokio #read-stream

skrillax-stream

结合skrillax-network包以在tokio tcp流上良好工作

1个不稳定发布

0.1.0 2024年6月22日

#1526 in 异步


用于 skrillax-protocol

MIT 许可证

155KB
2.5K SLoC

skrillax-stream

Crates.io Docs.rs

这是用于处理《 Silkroad Online》连接的高级(tcp)流实现。它基于skrillax-network系列的其他包(如 skrillax-packetskrillax-codecskrillax-serdeskrillax-security)构建。此外,它还为服务器和客户端提供了初始化握手,无论适用哪种。


lib.rs:

提供处理《 Silkroad Online》包流的便捷抽象。

尽管可以使用底层包提供的抽象,例如简单地使用[skrillax_packet]和[skrillax_codec],但这可能会变得相当繁琐。特别是当处理大量不同的包时,创建包的逻辑分组(即协议)可能更容易。

协议本质上只是一组包,以及可能的其他协议,允许读取和写入单个类型,而不是手动处理所有可能的案例。

预期您将使用 tokio::net::TcpStream 进行连接,以便可以通过调用 stream::SilkroadTcpExt::into_silkroad_stream 创建 Silkroad 流。使用结果 stream::SilkroadStreamReadstream::SilkroadStreamWrite,您现在可以使用 stream::SilkroadStreamRead::next_packet 读取包,并使用 stream::SilkroadStreamWrite::write_packet 编写包。

在提供的流抽象之上,它还提供了一种通过 handshake::ActiveSecuritySetuphandshake::PassiveSecuritySetup 处理服务器端和客户端的安全握手的方法。

依赖项

~6–15MB
~182K SLoC