Skip to content

Tags: anthropics/buffa

Tags

v0.3.0

Toggle v0.3.0's commit message

Verified

This tag was signed with the committer’s verified signature.
iainmcgin Iain McGinniss
buffa v0.3.0

v0.2.0

Toggle v0.2.0's commit message
buffa 0.2.0

Splits mod.rs generation into a separate protoc-gen-buffa-packaging
plugin and removes the mod_file= option from protoc-gen-buffa.

Breaking change for protoc-gen-buffa CLI users; library crates (buffa,
buffa-types, buffa-codegen, buffa-build) have no API breaks.

See CHANGELOG.md for the migration path.

v0.1.0

Toggle v0.1.0's commit message
buffa 0.1.0 — Rust Protocol Buffers with editions, views, and no_std

From-scratch protobuf runtime + codegen:

- Full schema support: proto2, proto3, editions 2023/2024 — with
  correct feature resolution (field_presence, enum_type, packed,
  utf8_validation) across syntax variants
- Binary wire format + proto3 canonical JSON (serde-based, feature-gated)
- Well-known types: Timestamp, Duration, Any, Struct/Value, FieldMask,
  wrappers — with ergonomic Rust conversions (chrono, serde_json)
- Zero-copy MessageView types borrowing the input buffer
- Open enums via EnumValue<E> preserving unknown values; closed enums
  route unknowns to UnknownFields
- Only requires no_std + alloc for runtime, views, and JSON
- Unknown field preservation on by default

Crates:
- buffa: runtime traits + encoding + views
- buffa-types: WKTs with chrono/serde_json integrations
- buffa-codegen: descriptor → TokenStream via quote/syn/prettyplease
- buffa-build: build.rs integration
- protoc-gen-buffa: protoc plugin + BSR plugin image

Passes the protobuf v33.5 conformance suite:
- 5539 (std) — 100% pass, excluding textproto (883 tests, not
  implemented)
- 5519 (no_std) — 20 Recommended-tier JSON tests need thread-local
  parse options
- 2797 (via-view) — binary decode only, verifies view/owned decoder
  parity

Runtime reflection not implemented.

See CHANGELOG.md, DESIGN.md, docs/guide.md.

License: Apache-2.0. Copyright 2026 Anthropic, PBC.
Vendored .proto sources (buffa-codegen/protos/, buffa-types/protos/)
are from protocolbuffers/protobuf v33.5 under BSD-3-Clause.