Cargo Features

capnp = { version = "0.19.5", default-features = false, features = ["alloc", "rpc_try", "unaligned", "std", "sync_reader", "quickcheck", "embedded-io"] }
default = alloc, std

These default features are set whenever capnp is added without default-features = false somewhere in the dependency tree.

alloc default

Enables alloc of optional embedded-io

Affects any_pointer::Pipeline.hook, capability::Promise, capability::RemotePromise, capability::Response, capability::Request, capability::Params, capability::Results, capability::FromClientHook, capability::Client, capability::Server, capability::FromServer, capability::get_resolved_cap, capnp::Error.extra, message::TypedBuilder, message::HeapAllocator, message::ScratchSpaceHeapAllocator, layout::CapTable, serialize::read_message_from_flat_slice, serialize::BufferSegments, serialize::OwnedSegments


If enabled, relaxes alignment requirements on segments.
This has a performance cost on some targets (e.g. ARMv6).

std default

If disabled, turns on no_std, which tells rustc to not link with the Rust standard library.

Enables std of optional embedded-io


If enabled, ReadLimiter will use AtomicUsize instead of Cell<usize>, allowing message readers to be Sync. Note that AtomicUsize is not supported by all rustc targets.

Features from optional dependencies

quickcheck implicit feature

Enables quickcheck


Automatic property based testing with shrinking

embedded-io implicit feature

Enables embedded-io


Embedded IO traits