Networking primitives for clients and/or servers for Silkroad Online.
Go to file
Tim 86a307edfd Fix problems reported by cargo publish for packet crate 2024-04-28 21:44:05 +02:00
crates Fix problems reported by cargo publish for packet crate 2024-04-28 21:44:05 +02:00
examples/echo-client-server Complete security handshake split 2024-04-28 20:58:07 +02:00
.gitignore Initial commit 2024-04-20 23:02:12 +02:00
Cargo.lock Small improvements in preparation for first release 2024-04-28 21:26:25 +02:00
Cargo.toml Define dependencies in workspace where sensible 2024-04-21 00:53:24 +02:00
LICENSE Correct LICENSE name 2024-04-21 13:20:55 +02:00
README.md Small improvements in preparation for first release 2024-04-28 21:26:25 +02:00

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, and skrillax-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.