hyperledger-identus / hyperledger-identus/sdk-rust
identus-did-core: chain-agnostic W3C DID Core model, resolver/registrar traits, error taxonomy
- Dominant language
- Rust
- Stars
- 0
- Forks
- 0
- Avg merge
- 39m
- Merged PRs (30d)
- 153
Description
Spec is crystallized; component issue per the program rule. Tracking epic: MediaNoxLabs/midnight-identity#20. Depends on the bootstrap (#4).
## Spec (crystallized)
**Seed**: `midnight-did-domain` from MediaNoxLabs/midnight-identity - a validated, wasm-clean W3C DID Core 1.0 model with zero midnight dependencies (documents, verification methods, DID/DID-URL parsing, JWK codecs, base64url helpers, resolver/registrar traits, resolution-result envelope, validation taxonomy). Its wave-1 issue (MediaNoxLabs/midnight-identity#29) absorbs the two app deltas first, so this crate starts as a strict superset of all three models in the estate.
**Requirements source**: the portal's `shared-ssi-core` openspec (service-agnostic SSI primitives contract) plus the delta list:
- Lossless unknown-field round-trip on documents and verification methods.
- Resolution error taxonomy with HTTP-status classifier.
- Input hardening (length caps, control-character rejection).
- Method-generic `Did` type with a method registry: `did:midnight` plugs in from the Layer 2 family; `did:prism` (neoprism), `did:key`, `did:web` land as sibling method crates without touching this core.
**Non-goals**: no chain coupling, no HTTP client, no crypto suites (traits reference JWK types only).
## Tasks
- [ ] Import/adapt the seed crate under the `identus-did-core` name (with midnight-identity then consuming it back - coordination tracked in the epic).
- [ ] Method registry + method-crate extension point, proven by porting the did:midnight grammar as an out-of-crate test fixture.
- [ ] wasm32 CI gate; plain-cargo build; no midnight-*/compact deps (enforced).
- [ ] Port the seed crate's test suite + the app-delta tests.
## Acceptance
- The three DID models in the estate (midnight-identity domain crate, portal laceid-core, oxid identity domain) are each expressible through this crate's API, demonstrated by their ported tests.
- Published as `identus-did-core` 0.1 (namespace already reserved - #3).
Contributor guide
Research direction
Start with the bootstrap issue #4, the tracking epic #20, and the `midnight-did-domain` seed referenced in this issue; then read the shared-ssi-core openspec and its delta list. Confirm the required registry, wasm32/plain-cargo constraints, and ported tests before implementing. Done means the three estate models pass through the API and `identus-did-core` 0.1 is publishable.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust, wasm
- Domain
- api, backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100