affinidi-rdf-encoding 0.1.1

RDF Dataset Canonicalization (RDFC-1.0) and JSON-LD expansion for W3C Verifiable Credentials
Documentation

affinidi-rdf-encoding

Crates.io Documentation Rust License

RDF Dataset Canonicalization (RDFC-1.0) and JSON-LD expansion for W3C Verifiable Credentials. A minimal-dependency implementation.

Features

  • RDF data modelNamedNode, BlankNode, Literal, Quad, Dataset
  • N-Quads parser/serializer — W3C spec-compliant with proper escaping
  • RDFC-1.0 canonicalization — Full W3C RDF Dataset Canonicalization algorithm
  • JSON-LD expansion + to-RDF — Focused on VC/DID contexts with bundled W3C context documents

Installation

[dependencies]
affinidi-rdf-encoding = "0.1"

Usage

use affinidi_rdf_encoding::{jsonld, rdfc1};

// JSON-LD -> RDF -> Canonical N-Quads
let document: serde_json::Value = serde_json::from_str(r#"{ ... }"#)?;
let dataset = jsonld::expand_and_to_rdf(&document)?;
let canonical_nquads = rdfc1::canonicalize(&dataset)?;

// Or use the convenience function for the full pipeline + SHA-256 hash:
let hash = affinidi_rdf_encoding::expand_canonicalize_and_hash(&document)?;

Bundled Contexts

The following W3C JSON-LD contexts are embedded (no network requests needed):

  • https://www.w3.org/ns/credentials/v2
  • https://www.w3.org/ns/credentials/examples/v2
  • https://w3id.org/security/data-integrity/v2

Related Crates

License

Apache-2.0