A Matrix client for the GONICUS GOuda API.
GOuda Matrix acts as a bridge between a GOuda application (e.g. GOnnect) and the Matrix protocol, implementing all Matrix specific operations including authentication, messaging, room management and end-to-end encryption.
GOuda Matrix and the application communicate through two local sockets, one for receiving requests from the application and one for sending responses and events back. For both sockets the application acts as the server, while GOuda Matrix is the client connecting to the local socket.
flowchart LR
A["GOuda Application<br/>e.g. GOnnect"]
B["GOuda Matrix"]
C["Matrix"]
A -- "Local Socket for Requests" --> B
B -- "Local Socket for Responses" --> A
B <--> C
git clone https://github.com/gonicus/gouda-matrix.git
cd gouda-matrix
cargo buildjust test# Run all checks (clippy, fmt, tests, unused deps, typos)
just check
# Format code
just fmt| Argument | Description |
|---|---|
<request_socket> |
Path to the socket for receiving requests from the application |
<response_socket> |
Path to the socket for sending responses and events back to the application |
| Flag | Default | Description |
|---|---|---|
--log-level |
WARN |
Log level: OFF, ERROR, WARN, INFO, DEBUG, or TRACE |
--log-file-path |
gouda_client.log |
Path to the log file |
First, start a GOuda application that creates the local sockets. For development and testing,
gouda_sandbox can be used.
Once the GOuda app is started, connect GOuda Matrix to the sockets:
cargo run /tmp/gouda-request-socket /tmp/gouda-response-socket