Cap'n Proto library and code generator for Go
receiverAnswer
cap descriptors. by @zenhack in https://github.com/capnproto/go-capnp/pull/209
List
field in StructList
. by @lthibault in https://github.com/capnproto/go-capnp/pull/231
packed
out of internal. by @zenhack in https://github.com/capnproto/go-capnp/pull/258
Full Changelog: https://github.com/capnproto/go-capnp/compare/v2.17.0...v3.0.0-alpha.30
RIP @zenhack. We'll miss you.
encoding/text
to indent output (#143)capnp compile
invocation (#145)schemas
(#147)Fixes security issue #137
Fixes #123
Fixes the Bazel build
capnp.Canonicalize
function that implements the canonicalization algorithm. (#92)Arena
implementations
Arena
contract in more detailArena
to have a single empty segment in NewMessage
Arena
allocation optimizations: both SingleSegment
and MultiSegment
now gradually ramp up the amount of space allocated in a single allocation as the message grows. This is similar to how built-in Go append
function works. Workloads with medium to large messages should expect a decrease in number of allocations, while small message workloads should remain about the same. Please file an issue if you encounter any performance regressions. (#96)Which()
. Prior to this change, unset union field accessors would silently return garbage.Struct.Address()
and List.Address()
are now deprecated. Especially for List
, where the address is at the beginning of the data, not the composite literal, the return value is not well-defined and its not clear how to use it. Use capnp.SamePtr
if you need to check for pointer reference equality. File an issue if you're using Address()
for something else.