โ† All docs  ยท  Home

ADR 0001 โ€” Rust workspace & W3C Web Annotation wire format

Context

Freedback needs one protocol implementation shared by ~9 components that span servers, native CLIs, browser widgets, and a browser extension. The format must be interoperable with existing tooling and survive federation across independently operated servers.

Decision

  1. A single Cargo workspace with a shared protocol-lib crate compiling to native + wasm32-unknown-unknown. Everything is Rust except the JS widgets and the Firefox extension.
  2. The native wire format is a W3C Web Annotation (JSON-LD) โ€” target + body + motivation (+ Selector). Typed feedback is carried in the body as schema:Rating subclasses, not as a bespoke envelope.
  3. The Mangrove-style signed JWT is an export profile only.

Why

Consequences / trade-offs