capnpc
Cap'n Proto code generation
0.27.0
10M downloads/mo
#3115 most downloaded on crates.io
capnproto/capnproto-rust
What this package is like to depend on
Last release 21 days ago
02 Aug 2026
Ships fairly regularly
a new release about every 2 months
Some releases are documented
notes for 78 of 148 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
148 releases · first in 2014
14 releases in the last 12 months
see the full history below
Release timeline
148 releases · Nov 2014 to Aug 2026
2015
2017
2019
2021
2023
2025
Releases
latest 60 of 148-
0.27.002 Aug 2026 -
0.26.017 Jun 2026 -
0.25.302 Apr 2026 -
0.25.230 Mar 2026Release notes
Open source →- Use 4-space indents in generated code.
- Prefer TryFrom over TryInto in generated code.
-
0.25.129 Mar 2026 -
0.25.009 Jan 2026 -
0.24.108 Jan 2026 -
0.24.024 Dec 2025Release notes
Open source →- Adjust generated code to use new constructors for constants and RawStructSchema.
-
0.23.324 Dec 2025Release notes
Open source →- Adjust generated dispatch code to properly disambiguate when an 'extends' interface method conflicts with another method.
-
0.23.229 Oct 2025 -
0.23.128 Oct 2025 -
0.23.028 Oct 2025 -
0.22.027 Oct 2025Release notes
Open source →- Update generated code of
Servertraits to supportasync fnmethods. What previously was a&mut selfparameter is now&self. Therefore RPC objects must now add their own interior mutability as needed.CellorRefCellshould suffice in most cases. - Remove support for rustc editions older than 2021 (when
awaitwas added).
- Update generated code of
-
0.21.431 Aug 2025Release notes
Open source →- Update minimum required version of capnp base crate, to account for new usage of impl Clone for capnp:: capability::Client.
-
0.21.328 Aug 2025 -
0.21.222 Jul 2025Release notes
Open source →- Use new
capability::DynClientHookalias to avoid warnings in generated code.
- Use new
-
0.21.102 Jul 2025Release notes
Open source →- Use new
introspect::panic_invalid_field_index()andintrospect::panic_invalid_annotation_indices()functions so that generated code can pass Clippy while still working on Rust 2015.
- Use new
-
0.21.008 Apr 2025 -
0.20.115 Nov 2024 -
0.20.017 Sep 2024 -
0.19.014 Jan 2024Release notes
Open source →- Include new members_by_name field of RawStructSchema.
- Generalize text, primitive_list, and enum_list setters using impl SetterInput.
-
0.18.111 Jan 2024 -
0.18.004 Sep 2023 -
0.17.226 Jun 2023Release notes
Open source →- Add the
$Rust.optionannotation for declaring fields to be optional. - Add
CompilerCommand::crate_provides(), allowing cross-crate imports.
- Add the
-
0.17.112 May 2023 -
0.17.008 May 2023Release notes
Open source →- Add support for reflection.
- Implement
Debugfor all generated structReadertypes.
-
0.16.502 May 2023Release notes
Open source →- Use
core::markerinstead ofstd::markerfor pointer constants, for no_std compat.
- Use
-
0.16.420 Apr 2023Release notes
Open source →- Generate explicit Clone and Copy impls for Reader structs.
- Fully-qualify
::capnp::Wordin generated code. - Add
capnp --versioninvocation beforecapnp compile, for better error reporting. - Clear PWD env variable, to silence warning from kj/filesystem-disk-unix.c++.
-
0.16.327 Feb 2023 -
0.16.230 Jan 2023 -
0.16.117 Jan 2023 -
0.16.017 Jan 2023Release notes
Open source →- Update code generation for removal of
To16,FromU16,FromStructReader,FromStructBuilder.
- Update code generation for removal of
-
0.15.212 Dec 2022Release notes
Open source →- Apply clippy lifetime elision suggestion in set_pointer_builder() in generated code.
-
0.15.105 Dec 2022 -
0.15.003 Nov 2022 -
0.14.913 Jul 2022 -
0.14.812 Jul 2022Release notes
Open source →- Include name of method in
unimplementederror messages. - Fix super interface lookup in case of transitive
extendschain.
- Include name of method in
-
0.14.724 Feb 2022 -
0.14.624 Feb 2022Release notes
Open source →- Fix bug in code generation for unions that don't use all of their enclosing struct's generic params.
-
0.14.508 Jan 2022Release notes
Open source →- Fix bug in code generation for generic groups.
- Add CompilerCommand.raw_code_generator_request_path().
-
0.14.411 Jun 2021Release notes
Open source →- Check that schema files exist before attempting to invoke the schema compiler.
-
0.14.309 Apr 2021 -
0.14.230 Dec 2020Release notes
Open source →- Add CompilerCommand::default_parent_module() option.
- Add codegen::CodeGenerationCommand and deprecate codegen::generate_code().
-
0.14.122 Dec 2020 -
0.14.019 Dec 2020Release notes
Open source →- Update for
SetPointerBuilderno longer having aTotype parameter. - Make generated
Ownedstructs unconstructable. They are only intented to be used as types, not values.
- Update for
-
0.13.107 Jul 2020 -
0.13.006 Jun 2020Release notes
Open source →- Update to work without requiring "std" feature of capnp base crate.
- Refer to
coreinstead ofstdin generated code. - Remove deprecated
ToClientstructs from generated code.
-
0.12.423 May 2020Release notes
Open source →- Add
CompilerCommand.capnp_executable(). - Remove obsolete
RustEditionenum.
- Add
-
0.12.302 May 2020 -
0.12.226 Apr 2020Release notes
Open source →- Add
parentModuleannotation to allow generated code to be included in a submodule.
- Add
-
0.12.113 Feb 2020Release notes
Open source →- Add rust.capnp file with
nameannotation for renaming items in generated Rust code.
- Add rust.capnp file with
-
0.12.019 Jan 2020 -
0.11.121 Dec 2019 -
0.11.007 Dec 2019Release notes
Open source →- Remove unused experimental
schemamodule. - Bump minimum supported rustc version to 1.39.0.
- Remove unused experimental
-
0.10.219 Nov 2019Release notes
Open source →- Include the string "@generated" generated code.
- Don't write output files if their content is unchanged.
-
0.10.104 Jul 2019 -
0.10.016 Jun 2019Release notes
Open source →- Simplify handling of pointer defaults.
- Use new const fn ::capnp::word() instead of capnp_word!() macro.
- Remove deprecated items.
- Use dyn keyword for trait objects.
- Deprecate edition() configuration. Apparently the code we generate for Rust 2018 also works for Rust 2015 now.
- Update to 2018 edition.
- Update minimum required rustc version to 1.35.
-
0.9.524 Apr 2019 -
0.9.420 Apr 2019 -
0.9.302 Dec 2018Release notes
Open source →- Generate impls of new IntoInternalStructReader trait, to support set_with_caveats.
- Update deprecation attributes, to satisfy clippy.