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