5 个版本

0.3.1 2019 年 11 月 5 日
0.3.0 2019 年 11 月 5 日
0.2.3 2019 年 11 月 2 日
0.2.2 2019 年 9 月 26 日
0.2.1 2019 年 9 月 6 日

#36 in #did

36 每月下载次数

Apache-2.0

32KB
870 代码行

DID

Build Status

这是一个 Rust 包,用于处理 W3C DID 规范中定义的 DID 文档。

此包目前支持两个功能:解析和验证 DID URI 和 DID 文档。它不处理特定于网络或上下文的 DID 方法规范。

命名空间为 did_uri,顶级导出 UriDocumentDidErrorDidErrorKind

解析 DID Uri 的示例

use did_doc::Uri;


fn main() {
    //Valid DID URI
    let did = Uri::from_str("did:git:akjsdhgaksdjhgasdkgh").unwrap();
    
    //Invalid DID URI
    let res = Uri::from_str("did:git:");
    assert!(res.is_err());

    //Convert back to string
    let did_str = did.to_string();
}

解析 DID 文档的示例

use did_doc::{
    fields::{PublicKeyEncoding, PublicKeyType},
    Document
};

fn main() {
    let jstr = r#"
    {
        "@context": "https://w3id.org/did/v1",
        "id": "did:example:123456789abcdefghi"
    }
    "#;

    //Valid did document;
    let doc = Document::from_str(&jstr).unwrap();    

    assert_eq!(doc.context().len(), 1);
    assert_eq!(doc.subject(), "did:example:123456789abcdefghi");
    assert_eq!(doc.public_key().len(), 0);
    assert_eq!(doc.authentication().len(), 0);
    assert_eq!(doc.service().len(), 0);
}

依赖项

~3–4MB
~79K SLoC