Skip to content

serder: strict canonical read-path parser — offset-based SAID verification, serde-free endgame #142

Description

@joeldsouzax

Goal

The read-path half of the #79 seam (design §3.3/§3.5, merged in #138): replace the tolerant serde_json deserialize path with a strict canonical parser for the five fixed event grammars.

End state (design §3.5)

With #141's write path and this card, production serder is serde-free; serde/serde_json demote to dev-dependencies as the cross-backend differential oracle. Default-flip and demotion are separate breaking steps (design §6 staging).

Acceptance

  • Strict parser behind the same seam vocabulary (EventLayout slots), byte-range SAID verify (no re-render)
  • Differential vs the serde_json read path over the builder-reachable event space + keripy corpus
  • Rejection tests: whitespace, duplicate keys, reordered fields, non-canonical escapes
  • no_std + wasm green; nix flake check

Spawned by #79 (design: docs/superpowers/specs/2026-07-10-79-serialization-backend-seam-design.md). Depends on: #141. Related: #129 (C-a), #139.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestperformancePerformance / zero-copy work

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions