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-config
Ensure 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.git
You 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 --build
This 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 mongo
The 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.example
file for needed variables
You can now start the mediator server:
cargo run
The output should look like this:
This project is licensed under the Apache License. See the LICENSE file for details.