Emma is a lightweight, embeddable instance of a Matrix server that is designed to run under Matrix. This project is written in Rust and uses the WAGI interface to interact with clients.
It is expected that, in the future, Emma runs orchestrated by the Valor runtime.
- core/
- client/
- modules
|- well-known/
- The
core/
folder contains the core library of the project, which includes the abstractions for modules, requests, and responses. - The
client/
folder contains the WASI client that includes the existing modules and exposes a router based on WAGI. - The
modules/
folder contains the individual modules, with thewell-known/
module being the only one currently available, which exposes the/.well-known/matrix/client
endpoint.
- Rust: The project is written in Rust, so it needs to be installed first.
- WAGI: Emma uses WAGI to run, so it is a required dependency.
- Other dependencies are listed in the
Cargo.toml
file on each project.
- Install Rust: Emma is written in Rust, so you will need to install Rust first. You can download Rust from here.
- Install
cargo-wasi
: Emma usescargo-wasi
to build WASI-compatible binaries. You can install cargo-wasi using the following command:
cargo install cargo-wasi
- WAGI: Emma uses WAGI to run, so it is a required dependency. You can install WAGI by following the instructions.
- Clone the repository: Clone the Emma repository using Git by running the following command:
git clone https://github.com/virto-network/emma.git
- Build the project: Navigate to the cloned repository and run the following command to build the project:
cargo wasi build --release
- Run Emma: After building the project, you can run Emma by running the following command:
wagi --config client/config.toml
- Access Emma: Once Emma is running, you can access it by visiting
http://localhost:3000
in your web browser.
Emma comes with a test suite that can be run using the following command:
cargo test
This will run all the tests in the project and provide a summary of the results.