Primitives are designed for deployment in adversarial environments. If you find an exploit, please refer to our security policy before disclosing it publicly (an exploit may equip a malicious party to attack users of a primitive).
- cryptography: Generate keys, sign arbitrary messages, and deterministically verify signatures.
- p2p: Communicate with authenticated peers over encrypted connections.
- runtime: Execute asynchronous tasks with a configurable scheduler.
- storage: Persist and retrieve data from an abstract store.
Examples may include insecure code (i.e. deriving keypairs from an integer arguments) to make them easier to run. Examples are not intended to be used directly in production.
- chat: Send encrypted messages to a group of friends.
- vrf: Generate bias-resistant randomness with untrusted contributors.
Sometimes, we opt to maintain software that is neither a primitive nor an example to make it easier to interact with the Commonware Library. Unless otherwise indicated, code in this section is intended to be used in production. Please refer to our security policy before disclosing an exploit publicly.
- docs: Access information about Commonware at https://commonware.xyz.
- macros: Augment the development of primitives with procedural macros.
- utils: Leverage common functionality across multiple primitives.
This repository is dual-licensed under both the Apache 2.0 and MIT licenses. You may choose either license when employing this code.
We encourage external contributors to submit issues and pull requests to the Commonware Library. To learn more, please refer to our contributing guidelines.