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, Haskell, JavaScript (Node.js), OCaml, Python, and Rust. Serialization-only bindings exist for C, D, Java, Lua, Nim, Ruby, and Scala.

API entry from apis.yml

apis.yml Raw ↑
aid: capn-proto:capn-proto-language-bindings
name: Cap'n Proto Language Bindings
description: 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, Haskell, JavaScript
  (Node.js), OCaml, Python, and Rust. Serialization-only bindings exist for C, D, Java, Lua, Nim, Ruby,
  and Scala.
humanURL: https://capnproto.org/otherlang.html
tags:
- Code Generation
- SDKs
- Serialization
properties:
- type: Documentation
  url: https://capnproto.org/otherlang.html
- type: GitHubOrganization
  url: https://github.com/capnproto
x-features:
- Serialization + RPC in C++, C#, Erlang, Go, Haskell, JavaScript, OCaml, Python, Rust
- Serialization-only bindings in C, D, Java, Lua, Nim, Ruby, Scala
- Shared canonical wire format across all implementations
- Editor integrations and syntax highlighters for common IDEs
x-use-cases:
- Polyglot systems sharing message types across services
- Compiling schemas into idiomatic bindings for each language
- Migration paths from Protocol Buffers in non-C++ codebases