Qstruct is a specification and perl module that implements a schema-based binary serialisation protocol.

Its main advantage is that the in-memory format is the same as the wire format so there are no explicit encoding or decoding steps, and as a result is nearly as efficient as C structures. Despite this, implementations are designed to be portable and safe, and the schema is designed to be extensible and flexible.

This talk covers basic and advanced use of Qstruct, its encoding specification, the Qstruct schema language and its ragel parser implementation, Qstruct::Compiler, and the XS perl bindings to libqstruct that form the reference dynamic implementation.