ProtoZero --------- *** note **This doc is WIP**, stay tuned. <!-- TODO(primiano): write protozero doc. --> *** ProtoZero is an almost* zero-copy zero-malloc append-only protobuf library. It's designed to be fast and efficient at the cost of a reduced API surface for generated stubs. The main limitations consist of: - Append-only interface: no readbacks are possible from the stubs. - No runtime checks for duplicated or missing mandatory fields. - Mandatory ordering when writing of nested messages: once a nested message is started it must be completed before adding any fields to its parent. *** aside Allocations and library calls will happen only when crossing the boundary of a contiguous buffer (e.g., to request a new buffer to continue the write). Assuming a chunk size (a trace *chunk* is what becomes a *contiguous buffer* within ProtoZero) of 4KB, and an average event size of 32 bytes, only 7 out of 1000 events will hit malloc / ipc / library calls. *** Other resources --------------- * [Design doc](https://goo.gl/EKvEfa])