---
name: "capnp"
section: "1"
platform: "linux"
package: "capnproto"
version: "1.1.0-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/capnp"
---

# capnp(1)

compiler for Cap'n Proto data interchange format definition files

## NAME

capnp - compiler for Cap'n Proto data interchange format definition files

## SYNOPSIS

**capnp** \[*\<options\>*\] *\<command\>* \[*\<args\>*\]

**capnp** id

**capnp** \[**--help** \| **--version**\]

## DESCRIPTION

This manual page documents briefly the **capnp** command.

It was written for the Debian distribution because the original program does not have a manual page.

**capnp** is wrapper for various tools used to manipulate the Cap'n Proto data interchange format. These tools include a definition file compiler, a C++ backend, a decoder for converting Cap'n Proto messages to text and a generator for Cap'n Proto definition IDs.

## OPTIONS

The program follows the usual GNU command line syntax, with long options starting with two dashes (\`-'). A summary of options is included below.

- **-I***DIR*, **--import-path***DIR*

  Add DIR to the list of directories searched for non-relative imports (ones that start with a '/').

- **--no-standard-import**

  Do not add any default import paths; use only those specified by -I. Otherwise, typically /usr/include and /usr/local/include are added by default.

- **--verbose**

  Log informational messages to stderr; useful for debugging.

- **--help**

  Show summary of options.

- **--version**

  Show version of program.

## COMMANDS

### compile

Compile Cap'n Proto schema files & generate corresponding source code in one or more languages.

**OPTIONS**

- **-I***\<dir\>*, **--import-path=***\<dir\>*

  Add \<dir\> to the list of directories searched for non-relative imports (ones that start with a '/').

- **--no-standard-import**

  Do not add any default import paths; use only those specified by -I. Otherwise, typically /usr/include and /usr/local/include are added by default.

- **-o***lang\[:dir\]*, **--output=***lang\[:dir\]*

  Generate source code for language \<lang\> in directory \<dir\> (default: current directory). \<lang\> actually specifies a plugin to use. If \<lang\> is a simple word, the compiler for a plugin called 'capnpc-\<lang\>' in $PATH. If \<lang\> is a file path containing slashes, it is interpreted as the exact plugin executable file name, and $PATH is not searched.

- **--src-prefix=***\<prefix\>*

  If a file specified for compilation starts with \<prefix\>, remove the prefix for the purpose of deciding the names of output files. For example, the following command: capnp --src-prefix=foo/bar -oc++:corge foo/bar/baz/qux.capnp would generate the files corge/baz/qux.capnp.{h,c++}.

### decode

Decodes one or more encoded Cap'n Proto messages as text. Messages are read from standard input and by default are expected to be in standard Cap'n Proto serialization format.

**OPTIONS**

- **-I***\<dir\>*, **--import-path=***\<dir\>*

  Add \<dir\> to the list of directories searched for non-relative imports (ones that start with a '/').

- **-f**, **--flat**

  Interpret the input as one large single-segment message rather than a stream in standard serialization format.

- **--no-standard-import**

  Do not add any default import paths; use only those specified by -I. Otherwise, typically /usr/include and /usr/local/include are added by default.

- **-p**, **--packed**

  Expect the input to be packed using standard Cap'n Proto packing, which deflates zero-valued bytes.

- **--short**

  Print in short (non-pretty) format. Each message will be printed on one line, without using whitespace to improve readability.

### id

Generates a unique identifier for Cap'n Proto schema files.

## SEE ALSO

More documentation about Cap'n Proto is available online at **http://capnproto.org**.

## AUTHOR

**Tom Lee** \<debian@tomlee.co\>

Wrote this manpage for the Debian system.

## COPYRIGHT

Copyright © 2013 Tom Lee\

This manual page was written for the Debian system (and may be used by others).

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or (at your option) any later version published by the Free Software Foundation.

On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL.
