Alkahest is serialization library aimed for packet writing and reading in hot path. For this purpose Alkahest avoids allocations and reads data only on demand.
Key differences of Alkahest from other popular serialization crates is zero-overhead serialization and zero-copy lazy deserialization.\ For example to serialize value sequence it is not necessary to construct expensive type with allocations such as vectors.\ Instead sequences are serialized directly from iterators. On deserialization an iterator is returned to the user, which does not parse any element before it is requested. Which means that data that is not accessed - not parsed either.
Alkahest works similarly to FlatBuffers,\ but does not require using another language for data scheme definition and running external tool,\ and supports generic schemas.
If some feature is missing, feel free to create and issue and describe what should be added.
Alkahest comes with a benchmark to test against other popular serialization crates.
Simply run cargo bench --all-features
to see results.
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.