[package]

name = "capnp"
version = "0.26.0"
authors = [ "David Renshaw <dwrenshaw@gmail.com>" ]
license = "MIT"
description = "runtime library for Cap'n Proto data encoding"
repository = "https://github.com/capnproto/capnproto-rust"
documentation = "https://docs.rs/capnp/"
edition = "2021"
rust-version.workspace = true

readme = "README.md"

keywords = ["encoding", "protocol", "serialization"]

[dependencies]
quickcheck = { version = "1", optional = true }

embedded-io = { version = "0.7.1", default-features = false, optional = true }

[dev-dependencies]
quickcheck = "=1.0"

[features]
alloc = ["embedded-io?/alloc"]
default = ["std", "alloc"]

rpc_try = []

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

# If disabled, turns on no_std, which tells rustc to not link
# with the Rust standard library.
std = ["embedded-io?/std"]

# 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.
sync_reader = []

[lints]
workspace = true
