Files
pycapnp/vendor/capnproto/README.md
2026-09-21 20:05:46 -07:00

45 lines
2.2 KiB
Markdown

# Vendored Cap'n Proto
Based on Cap'n Proto 1.4.0, the version previously downloaded by this fork.
Source: https://capnproto.org/capnproto-c++-1.4.0.tar.gz
Archive SHA-256: `fa02378ad522b318916b9ad928d1372fc9abd43dd1f4f0392e50450f5c87828f`
See LICENSE.txt and individual files for upstream licenses.
This is an internal serialization/schema-parser subset for pycapnp, not a full
Cap'n Proto distribution. Generated schema sources are checked in; no compiler
executables or network downloads are required to build it.
Removed: RPC/capabilities, promises/async I/O, networking/TLS/HTTP, JSON,
compression, packed/text/stream/fd message serialization, command-line tools and
code generators, upstream build systems/examples/tests, compiler export helpers,
unused KJ encodings/stream classes/clocks, and opt-in crash handlers. Also removed
are canonicalization, borrowed-memory builders, orphan resizing/concatenation,
schema doc-comment storage, interface-schema support, Windows code, and the
optional lite build. Interface declarations are rejected with a parser error.
The retained core includes message validation, flat serialization, dynamic
struct/list/enum values, runtime schema compilation (including generics), and
its filesystem, allocation, synchronization, and diagnostic dependencies.
Generated schema reader/builder metadata is retained; pipeline classes are not.
This source tree is for the Python binding, not a drop-in C++ SDK or schema
compiler for openpilot's separate C++ build.
The retained `src/capnp/schema.capnp` omits compiler-request and documentation
metadata. Its generated C++ was rebuilt with upstream 1.4.0's `capnp` and
`capnpc-c++`, then unused generated pipeline APIs were removed. Regeneration:
```sh
capnp compile -I<upstream>/src --src-prefix=vendor/capnproto/src/capnp \
-o<capnpc-c++>:<output> vendor/capnproto/src/capnp/schema.capnp
```
Regeneration must also apply the vendor's removal of Pipeline declarations,
classes and accessors, and Windows-only includes. The unused `LexedTokens` type
was removed from the shipped generated lexer files; the runtime parser uses
`LexedStatements`. Lexer reflection metadata is also omitted; its generated
static reader/builder layouts remain. Generated wire type tags and active field
ordinals are kept.