An abstraction layer for multiple popular serialization formats:
This package is an exploration of different serialization formats/libraries regarding their support of appending (chaining) multiple messages. This can be useful when storing serialized data in a binary file that is supposed to grow over time.
Further libs: MessagePack, Arrow, ...
While developing, those general resources for using the different backend libs with Python are useful:
- Protocol Buffers:
- Cap'n Proto:
- FlatBuffers:
If your project doesn't depend on minimal binary storage (in terms of file size), or on one of those big cross-platform serialization libraries from above, serializing to JSON and appending to a JSON Lines file might be an option, too. It's human readable, many serialization libs exist like serpy. And you can still compress the output stream using lz4 if you need to save storage space.
Some more Python libs I found interesting while doing research (not necessarily related to this project):