Skip to content

Milestone 0.5 — Streams, utilities, and observability

Status: complete
Outcome: complete the non-query high-level Rust surface needed for Redland workflow parity
Depends on: 0.1–0.4 model, I/O, SPARQL, and durable storage
Blocks: 0.6 safe-API accounting that assumes utility/logging mappings
Release evidence: docs/reports/0.5.md

This is the executable specification for 0.5. The roadmap defines the release outcome; this document defines the work packages and acceptance criteria. Design detail: 0.5-streams-utilities.md. Decisions: ADR-013–ADR-016.

User-visible result

At the end of 0.5, a Rust caller can:

  • rely on documented fallible-iterator stream contracts for find, parse, and query (lazy; early-stop by dropping the iterator);
  • use URI, file-URI, Unicode, digest, and vocabulary helpers under oxiland::utility;
  • register logging callbacks on World and optionally bridge to tracing;
  • map Redland hashes/lists to standard Rust collections with documented migration examples;
  • observe deterministic log callback ordering and non-panicking utility errors on malformed input.

Non-goals

  • Full Redland symbol accounting / rdfproc CLI (0.6)
  • C ABI stream handles (0.8)
  • Lending iterators / Redland callback visitors as public APIs
  • Unifying stream trait across find/parse/query
  • Parse/load wall-clock timeout (cancel remains SPARQL-scoped, ADR-012)
  • Expanding Rasqal SPARQL differential beyond existing smoke
  • New durable storage engines

Work package sequence

ID Package Depends on
WP-05-00 Milestone plan + inventory skeleton
WP-05-01 Accept ADR-013–ADR-016 WP-05-00
WP-05-02 Stream policy polish + early-stop evidence WP-05-01
WP-05-03 URI / file / Unicode helpers WP-05-01
WP-05-04 Digests WP-05-01
WP-05-05 Namespaces + vocabulary constants WP-05-01
WP-05-06 World logging + optional tracing WP-05-01
WP-05-07 Hash/list mappings + migration examples WP-05-01
WP-05-08 Evidence + CI WP-05-02–07
WP-05-09 Docs, parity, 0.5.0 release all

Evidence gates

  • Stream APIs are lazy and covered by early-termination tests.
  • Utility output is differentially tested against Redland where applicable.
  • No compatibility utility panics on malformed external input.
  • Logging levels/facilities and callback ordering are fixture-tested.
  • Every curated hash/list/manual-memory symbol has a documented Rust mapping or non-applicable rationale.

Exit checklist

  • Inventory redland-1.0.17-oxiland-0.5.json verified
  • ADR-013–ADR-016 accepted
  • Public API snapshot updated
  • docs/reports/0.5.md complete
  • PARITY.md / ROADMAP.md mark 0.5 complete
  • CI green (Check + Fjall + MSRV + RDF I/O conformance)
  • 0.5.0 release checklist ready (docs/reports/0.5.0-release.md; tagging still open)