Swiss Army Knife for encoding and decoding binary streams
25 Stars
Updated Last
12 Months Ago
Started In
December 2012

StrPack: Structured Binary Stream Tools

One of the things I find annoying about MATLAB is dealing with binary data. There's a lot of boilerplate, a lot of fread(), and some weird thing involving a =>.

Enter StrPack. StrPack decodes binary streams to Julia composite types, handling stream endianness and padding bytes for the source ABI along the way. StrPack also encodes instances of Julia composite types to binary streams, setting endianness and adding padding if required to meet an ABI. Along with Julia's IOBuffer type, StrPack can also be used to convert between Julia composite types and buffers suitable for some C function arguments.

StrPack is a serializer/deserializer only in a very limited sense. StrPack only handles Julia's bits types or user types for which read(io, ::UserType) and write(io, data::UserType) have been defined. However, you could use StrPack to build those things.


More complete documentation can be found on Read The Docs.


This package is only semi-maintained. While it has been updated to work without warnings on Julia 1.0, there are no guarantees of correctness beyond the existing (and very limited) package tests. Use at your own risk.