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.
24 lines
1.2 KiB
Markdown
24 lines
1.2 KiB
Markdown
# 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 `Value`s, validators, protocol errors, and structural validation. It does not define an HTTP mapping, application DTOs, persistence, or network I/O.
|
|
|
|
```toml
|
|
[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](../../MIGRATION.md)
|
|
for the breaking Rust and HTTP wire changes and deferred consumer semantics.
|
|
|
|
See the [API documentation](https://docs.rs/wip-protocol) for the complete model and validation rules.
|
|
|
|
Licensed under either of Apache-2.0 or MIT at your option.
|