FabioPinheiro / scala-did

A Scala & Scala.js implementation of DID and DID Comm messaging spec
https://did.fmgp.app/
Other
5 stars 3 forks source link
decentralized-identities did didcomm

SCALA DID

A Scala/ScalaJS library for DID and DIDcomm. The one of the main goals of this library is to make DID Comm v2 type safety and easy to use. Made for developers by developers.

LIVE DEMO (DIDComm's Sandbox)

Scala-DID Documentation

Maven Central CI Scala Steward

did Scala version support did Scala version support

The future version of DID Comm v2.1 is been track&develop in the branch didcomm-v2.1

More documentation:

Adopters

Following is a partial list of companies and project using DID Comm to craft applications.

Want to see your project here? [Submit a PR]

Protocols

TODO/WIP

Benefits of type safety

I usually say if it compiles it probably also works!

Project Structure and Dependencies Graph

flowchart BT

  zhttp --> zio
  did --> zio
  zio-json --> zio
  did --> zio-json
  did-resolver-web ----> zhttp:::JVM

  subgraph fmgp libraries
    did-resolver-peer --> multibase
    subgraph platform specific
      did-imp
      did-imp-hw:::Others -.-> did-imp
      did-imp_js:::JS ==>|compiles together| did-imp
      did-imp_jvm:::JVM ==>|compiles together| did-imp
    end
    did-resolver-peer --> did
    did-resolver-web --> did
    did-comm-protocols --> did
    did-framework --> did
    did-framework --> did-comm-protocols
    did-imp --> did
  end

  did-example ----> did
  did-example --> did-imp
  demo --> did-imp 

  did-imp_jvm:::JVM ----> nimbus-jose-jwt:::JVM --> google-tink:::JVM
  did-imp_jvm:::JVM ---> google-tink

  did-imp_js ----> jose:::JS

  %% subgraph demo/docs
    webapp:::JS --> did-framework
    demo --> did-framework
    demo --> did-resolver-web
    demo --> did-resolver-peer
    webapp:::JS --> did-imp_js
    webapp:::JS  --> did-resolver-web
    webapp:::JS  --> did-resolver-peer
    webapp:::JS  --> did-example
    demo  --> did-example
    demo -.->|uses\serves| webapp

    demo_jvm(demo_jvm\nA server):::JVM ==>|compiles together| demo

    did-example  --> did-resolver-peer
    did-example  --> did-resolver-web
  %% end

  classDef JVM fill:#141,stroke:#444,stroke-width:2px;
  classDef JS fill:#05a,stroke:#444,stroke-width:2px;
  classDef Others fill:#222,stroke:#444,stroke-width:2px,stroke-dasharray: 5 5;

NOTES: