ScriptsMay 26, 2026·3 min read

Cap'n Proto — Insanely Fast Data Serialization

A data interchange format and RPC system that uses zero-copy reads with no parsing or unpacking step, created by the author of Protocol Buffers v2.

Agent ready

Ready-to-run agent install

This asset can be installed after the agent chooses its runtime, checks the plan, and runs the matching command.

Native · 98/100Policy: allow
Agent surface
Any MCP/CLI agent
Kind
Skill
Install
Single
Trust
Trust: Established
Entrypoint
Cap'n Proto Overview
Direct install command
npx -y tokrepo@latest install a24c2585-5898-11f1-9bc6-00163e2b0d79 --target codex

Run after dry-run confirms the install plan.

Introduction

Cap'n Proto is a data serialization and RPC framework designed for extreme speed. Unlike Protocol Buffers or JSON, it uses a wire format that can be read directly from memory without a parsing step. This zero-copy approach means serialization is effectively free: the in-memory representation is the wire format.

What Cap'n Proto Does

  • Serializes structured data with zero-copy reads — no decode step needed
  • Generates type-safe code for C++, Rust, Go, Python, Java, and other languages
  • Provides a built-in RPC system with promise pipelining to reduce round trips
  • Supports schema evolution with guaranteed backward and forward compatibility
  • Handles large messages efficiently via memory-mapped files

Architecture Overview

Cap'n Proto messages are laid out in memory as a tree of segments with pointer-based navigation. Reading a field is a pointer dereference, not a parse. The schema compiler (capnp compile) generates accessor classes that overlay the raw bytes. The RPC layer uses promise pipelining: when a call returns a reference, you can make follow-up calls on it before the first one resolves, and Cap'n Proto batches them over the wire.

Self-Hosting & Configuration

  • Build the C++ runtime and compiler with CMake (requires a C++17 compiler)
  • Schema files (.capnp) define your data structures and RPC interfaces
  • Compile schemas to target languages with capnp compile -o<lang>
  • RPC server can run over TCP or Unix sockets with built-in TLS support
  • Embed as a library or use the capnp CLI for serialization debugging

Key Features

  • Zero-copy design: reading a 1 MB message takes constant time regardless of schema complexity
  • Promise pipelining eliminates multiple network round trips in RPC workflows
  • Canonical encoding for deterministic hashing and comparison
  • Schema evolution rules that prevent breaking changes at compile time
  • MIT licensed with no runtime dependencies

Comparison with Similar Tools

  • Protocol Buffers — requires parsing/unpacking; Cap'n Proto is zero-copy
  • FlatBuffers — also zero-copy but no built-in RPC and less mature schema evolution
  • MessagePack — schema-less binary format; faster to get started but no type safety
  • Thrift — includes RPC but serialization requires copying and is slower
  • gRPC — HTTP/2-based RPC with Protobuf; Cap'n Proto RPC is lower-level and faster

FAQ

Q: How does zero-copy serialization work? A: The in-memory layout matches the wire format. When you build a message, the bytes you write are exactly what gets sent. The receiver reads fields directly from the buffer without deserialization.

Q: Can I use Cap'n Proto with languages other than C++? A: Yes. There are official or community-maintained implementations for Rust, Go, Python, Java, C#, TypeScript, and others.

Q: How does schema evolution compare to Protobuf? A: Cap'n Proto uses numbered fields (like Protobuf) and allows adding new fields, promoting fields to groups, and deprecating old ones. The compiler enforces compatibility rules.

Q: Is Cap'n Proto suitable for storage, not just networking? A: Yes. The zero-copy format works well for memory-mapped files, making it effective for databases, caches, and on-disk indexes.

Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets