Add the alknet-typedef architecture specification — the binary struct engine that takes JSON Schema with TypeDef:* custom keywords and produces offset maps, read/write functions, and validation. Specs (docs/architecture/crates/typedef/): - overview.md: purpose, 'schema is the format' principle, consumers, scope - schema-layer.md: 17 TypeDef:* kinds, jsonschema integration, annotations - layout-engine.md: two layout modes, three variable-length strategies - data-access.md: read/write, TUnion dispatch, field paths, zero-copy - validation.md: custom keyword validators, TypedefError, TypedefEngine ADRs: - 095: Purpose, scope, and the jsonschema engine - 096: Two layout modes — packed sequential vs aligned static - 097: Schema annotations — endianness, alignment, encoding, TUnion - 098: Error handling and validation strategy OQs (deferred(scope)): - 069: Arrays of variable-length-element structs - 070: no_std + alloc support - 071: Builder API for schema construction Index updates: README doc table + ADR table, open-questions.md theme table + Deferred/Blocked section, overview.md crate graph. Grounded in the alknet-typedef POC (26 tests passing) and the call-channels-unification research. Reviewed by architecture-reviewer; all critical issues, warnings, and suggestions addressed.
974 B
974 B
OQ-070: no_std + alloc support
- Origin: crates/typedef/overview.md;
docs/research/alknet-typedef/findings.md§"Open Questions" (OQ 6) - Status: deferred(scope)
- Door type: Two-way (additive — can be added as a feature gate
without changing the existing
stdAPI) - Priority: low
- Impacts: Blocks embedded/WASM-bare-metal deployment targets (microcontrollers,
no_stdenvironments). Does NOT block WASM-browser (hasstdviawasm-bindgen). Does NOT block any current deployment target. - Blocked on: An embedded use case that requires
no_std+alloc(e.g., a microcontroller running Rust withoutstd). - Resolution: Not yet decidable. Target
stdfor v1. If embedded use cases emerge,no_std+alloccan be added as a feature gate later. The engine's core is already allocation-free; thejsonschemadependency is the onlyallocconsumer. - Cross-references: ADR-095