Skip to content

decentralized-identity/web5-go

Repository files navigation

web5-go

Table of Contents

Summary

This repo contains the following packages:

package description
crypto Key Generation, signing, verification, and a Key Manager abstraction
dids DID creation and resolution.
jwk implements a subset of the JSON Web Key spec
jws JWS (JSON Web Signature) signing and verification
jwt JWT (JSON Web Token) parsing, signing, and verification

Important

Check the README in each directory for more details

crypto

Supported Digital Signature Algorithms:

dids

Supported DID Methods:

jws

JWS signing and verification using DIDs

jwt

JWT signing and verification using DIDs

Development

Prerequisites

We use a submodule for test vectors that make sure we follow the appropriate spec. Running tests will fail without it. To set up the submodule, clone using:

git clone --recurse-submodules [email protected]:decentralized-identity/web5-go.git

If you've already cloned, add submodules:

git submodule update --init

This repo uses hermit to manage all environment dependencies (e.g. just, go).

Important

run . ./bin/activate-hermit everytime you enter this directory if you don't have hermit shell hooks configured

Git hooks

Before contributing, set up the pre-commit hook by running:

cp .githooks/pre-commit .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit

Helpful Commands

This repo uses just as a command runner. Below is a table of helpful just commands:

command description
just test runs all tests
just lint runs linter

web5 CLI

web5 -h

See cmd/web5/README.md for more information.

Contributing

Each package's README contains in-depth information about the package's structure and suggestions on how add features specific to that package