| 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) |