Cap'n Proto Schema Language
The Cap'n Proto schema language is used to define message types in .capnp files that are then compiled into native code for each supported language. The schema language defines structs, unions, enums, interfaces (for RPC), groups, generics, and annotations, and carefully specifies evolution rules so schemas can be extended without breaking forward or backward compatibility.