We only use go-libp2p for the crypto wrappers (github.com/libp2p/go-libp2p/core/crypto), and those have not changed in a while. We don't need the most recent version of go-libp2p. On the other hand, a too recent version can easily mess with project that aim for an older version of libp2p (often transitively). This PR gives some leeway for version resolution.
This is a go library to help the next generation of web and decentralized applications make use of UCANs in their authorization flows.
User Controlled Authorization Networks (UCANs) are a way of doing authorization where users are fully in control. OAuth is designed for a centralized world, UCAN is the distributed user controlled version.
Resources
Specifications
The UCAN specification is separated in multiple sub-spec:
Not implemented yet:
Talks
- Decentralizing Auth, and UCAN Too - Brooklyn Zelenka (2023)
- What's New in UCAN 1.0 - Brooklyn Zelenka (2024)
Status
go-ucan currently support the required parts of the UCAN specification: the main specification, delegation and invocation.
Besides that, go-ucan also includes:
- a simplified DID and did-key implementation
- a token container with CBOR and CAR format, to package and carry tokens together, see SPEC
- support for encrypted values in token's metadata
Getting Help
For usage questions, usecases, or issues reach out to us in our go-ucan
Discord channel.
We would be happy to try to answer your question or try opening a new issue on Github.
UCAN Gopher
Artwork by Bruno Monts. Thank you Renee French for creating the Go Gopher
License
This project is licensed under the double license Apache 2.0 + MIT.