Tim 86a307edfd | ||
---|---|---|
crates | ||
examples/echo-client-server | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE | ||
README.md |
README.md
Skrillax Network
Skrillax Network is the Client-Server networking I'm using in my Skrillax project. This is a layer on top of tokio for both client and server to talk the same protocol Silkroad Online uses. It is composed of multiple layers that stack on top of each other, but it's possible to use lower layers independently if desired. Skrillax Network comprises the following individual crates:
- skrillax-serde: Serialization/Deserialization of data for silkroad. This is essentially serde with Silkroad only specific routines. Similarly to serde, this also contains an automatic derivation feature.
- skrillax-packet: Primitive (with automatic derivation) for defining full packets. A packet still needs to be serializable to be useful.
- skrillax-codec: Tokio Codec to frame a TPC stream into Silkroad Online frames.
- skrillax-stream: Using
skrillax-code
,skrillax-packet
, andskrillax-serde
to build a complete stream to easily read and write full packets in the format expected by Silkroad Online and establish a secured connection through a proper handshake.
Notably, this does not contain any specific packets, apart from the security handshake, for Silkroad Online. Given the protocol constantly changes, as well as trying to allow multiple protocol versions to be used by users of this crate/these crates, it was decided to keep the actual protocol away.