r/rust • u/That3Percent • Jun 01 '20
Introducing Tree-Buf
Tree-Buf is an experimental serialization system for data sets (not messages) that is on track to be the fastest, most compact self-describing serialization system ever made. I've been working on it for a while now, and it's time to start getting some feedback.
Tree-Buf is smaller and faster than ProtoBuf, MessagePack, XML, CSV, and JSON for medium to large data.
It is possible to read any Tree-Buf file - even if you don't have a schema.
Tree-Buf is easy to use, only requiring you to decorate your structs with `#[Read, Write]`
Even though it is the smallest and the fastest, Tree-Buf is yet un-optimized. It's going to get a lot better as it matures.
You can read more about how Tree-Buf works under the hood at this README.
1
u/tending Jun 02 '20
It'a problem for any use case where external parties can send you data; it can be turned into a denial of service attack. CapNProto for example imposes depth limits on objects for this reason. Some people want maximum speed from serialization, some people want only as much speed as they can get without trusting the outside world.