Files
Hare 8ecc307fc9 feat: migrate protocol and HTTP to structured interface references
T-20: identify interfaces by exact scope/name pairs; add optional opaque scope_ref metadata and separate shape validation from path-dependent scope compatibility. Preserve call error precedence, strict JSON, validators and transport boundaries. Mechanically migrate consumers and document API/wire compatibility and deferred lifecycle semantics.

Validation: cargo fmt --all --check; git diff --check; cargo check --workspace --all-targets; cargo test -p wip-protocol -p wip-http; cargo test --workspace (221 passing tests including doctests); cargo test --workspace --all-targets; nix develop --command cargo clippy --workspace --all-targets -- -D warnings; RUSTDOCFLAGS="-D warnings" cargo doc --workspace --no-deps. All pass. cargo/rustc 1.95.0; development-shell Clippy/rustc 1.97.1.
2026-10-07 18:29:51 +09:00
..

wip-protocol

Transport-independent logical types and validation for the Web Interface Protocol (WIP).

This crate defines the canonical Object and Interface Descriptor models, the three Core interaction request and response types, schema-neutral operation Values, validators, protocol errors, and structural validation. It does not define an HTTP mapping, application DTOs, persistence, or network I/O.

[dependencies]
wip-protocol = "0.1.0"

Interface identity is an exact InterfaceReference { scope, name } pair. scope is a canonical absolute Worldspace path and name is nonempty Unicode. Use validate() for shape, validate_for_path() for ancestor-or-self placement, and Object/interaction validation at response boundaries. Fetching needs no target Object path. Fetch responses and interface call targets carry optional opaque string scope_ref metadata, not a third identity field. Descriptors do not embed identity. See the repository's migration guide for the breaking Rust and HTTP wire changes and deferred consumer semantics.

See the API documentation for the complete model and validation rules.

Licensed under either of Apache-2.0 or MIT at your option.