A DIDComm mediator is a cloud agent that facilitates secure, decentralized communication between mobile agents in the self-sovereign identity (SSI) ecosystem. This mediator acts as a cloud-based intermediary, enabling mobile agents to communicate without reliance on centralized infrastructures like Facebook, Signal, or Telegram.
For further understanding checkout the docs
| Message types | Spec Status | Implementation Status |
|---|---|---|
| Mediator Coordination Protocol | ADOPTED | ✅ |
| Pickup Protocol | ADOPTED | ✅ |
| DID Rotation | ACCEPTED | ✅ |
| Cross-Domain Messaging/ Routing Protocol | ADOPTED | ✅ |
| Trust Ping Ptotocol | ADOPTED | ✅ |
| Discover Features Protocol | ADOPTED | ✅ |
| Out of band Messaging | ADOPTED | ✅ |
| Basic Message Protocol | ADOPTED | ⚪ |
| Acks | ADOPTED | ❌ |
| Present Proof Protocol | ADOPTED | ❌ |
To build and test the project, ensure that libssl-dev and pkg-config are installed on your system.
Install the necessary packages with:
sudo apt update
sudo apt install -y libssl-dev pkg-configEnsure you have Rust & Cargo installed.
-
Optionally, create a working directory and navigate into it.
-
Clone the repository:
git clone [email protected]:adorsys/didcomm-mediator-rs.gitYou need to create a .env file in the root directory of the project. Take a look at the .env.example file for more information about the needed variables.
The easiest way to run the project is with Docker Compose.
Run the following command:
docker-compose up --buildThis will build the docker image of the mediator server with all its prerequisites and run it.
This project uses MongoDB as the database. You need to have MongoDB installed and running on your system.
Another option is to use Docker:
docker pull mongo
docker run --name mongodb -d mongoThe server uses AWS Secrets Manager for storing the mediator secrets. You need to configure AWS credentials in your environment. For tests you can use LocalStack as a local AWS service.
check the
.env.examplefile for needed variables
You can now start the mediator server:
cargo runThe output should look like this:
This project is licensed under the Apache License. See the LICENSE file for details.
