hyperledger-identus / hyperledger-identus/sdk-rust

identus-did-core: chain-agnostic W3C DID Core model, resolver/registrar traits, error taxonomy

Open
#5 3 comments 0 reactions 0 assignees View on GitHub
crystallization enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.