Skip to content

Latest commit

 

History

History
28 lines (23 loc) · 1.6 KB

project_structure.md

File metadata and controls

28 lines (23 loc) · 1.6 KB

Project Structure

The project's components are organized, conceptually, into 3 layers:

  • Controller Bindings: provides APIs for framework users
  • Service: handles protocol flows, dispatches to other layers
  • Pluggable dependencies: components (DIDs, crypto, etc)

As a user, what do you do:

  • Controller Bindings
    • initialize the framework (Aries framework object)
    • register for events using the Rest API or Native Go API
    • handle events
  • Pluggable Components
    • Create custom plugins for components, inject them into the framework

Important Go Packages

  • Framework: Initializes the framework with user provided or default options.
  • Client: Defines DIDComm Protocol APIs for framework consumers.
  • Protocol Service: Handles DIDComm Protocol messages including state transitions.
  • Message Service: Dynamically handles incoming DIDComm messages by type and purpose.
  • Key Management Service: Handles agent key management including creation of keys and signing of messages.
  • DID Method: Provides support for DID Methods. Currently, framework supports HTTP and Peer DID Methods.
  • Storage: Provides agent data storage options. Currently, in-memory storage is supported by default. Encrypted storage is also supported.
  • DIDComm Envelope: Supports packing and unpacking of DIDComm message envelopes.
  • Verifiable Credential: Defines Verifiable Credentials and Presentations data model.