Cap'n Proto logo

Cap'n Proto

Cap'n Proto is an open-source binary data interchange format and capability-based RPC protocol specification originally created by Kenton Varda. Unlike Protocol Buffers, Cap'n Proto's in-memory representation is identical to its wire format, enabling zero-copy deserialization, incremental reads, random field access, and memory-mapped I/O. The reference implementation is in C++; a broad ecosystem of community-maintained bindings covers C#, Erlang, Go, Haskell, JavaScript/Node, OCaml, Python, Rust, C, D, Java, Lua, Nim, Ruby, and Scala.

5 APIs 0 Features
Binary FormatCapability-Based SecurityCode GenerationIPCOpen SourceProtocolRPCSchemaSDKsSerializationSpecificationZero Copy

APIs

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

Cap'n Proto Encoding (Wire Format)

The Cap'n Proto encoding specification defines the binary wire format. The in-memory layout is the wire format, enabling zero-copy reads and writes, random field access, and saf...

Cap'n Proto RPC Protocol

Cap'n Proto's RPC protocol is a capability-based RPC layer that supports promise pipelining, object references passed as arguments or return values, and time-travel optimization...

Cap'n Proto C++ Reference Implementation

The C++ reference implementation is the canonical runtime for Cap'n Proto, providing the capnp compiler, serialization library, and KJ/RPC runtime. Other language implementation...

Cap'n Proto Language Bindings

Community-maintained language bindings implement Cap'n Proto serialization and, in many cases, the full RPC protocol. Serialization plus RPC is supported in C++, C#, Erlang, Go,...

Resources

🔗
Website
Website
🔗
Documentation
Documentation
🚀
Getting Started
Getting Started
👥
GitHub Organization
GitHub Organization
👥
GitHub Repository
GitHub Repository
🔗
Discussion Group
Discussion Group
🔗
License
License