A Golang Matrix framework.
  • Go 99.7%
  • PLpgSQL 0.3%
Find a file
Sumner Evans 66c417825b
Some checks are pending
Go / Lint (latest) (push) Waiting to run
Go / Build (old, libolm) (push) Waiting to run
Go / Build (latest, libolm) (push) Waiting to run
Go / Build (old, goolm) (push) Waiting to run
Go / Build (latest, goolm) (push) Waiting to run
crypto/olm: add tests comparing libolm and goolm, replace crypto/ed25519 -> maunium.net/go/mautrix/crypto/ed25519
The following tests were added that compare libolm and goolm against
each other.

* account: add (un)pickle tests
* groupsession: add test for (en|de)cryption for group sessions
* account: test IdentityKeysJSON and OneTimeKeys
* session: add test for encrypt/decrypt
* session: add test for private key format
* outboundsession: add differential fuzz test for encryption

Signed-off-by: Sumner Evans <sumner.evans@automattic.com>
2024-08-23 09:16:58 -06:00
.github/workflows crypto/olm: make everything into an interface 2024-08-23 09:16:33 -06:00
appservice appservice: ensure registered before uploading media 2024-08-08 12:45:24 +03:00
bridge bridgev2/provisioning: nest bridge state in whoami response 2024-08-10 16:08:41 +03:00
bridgev2 provisioning: fix return value from doResolveIdentifer 2024-08-22 13:07:56 -06:00
crypto crypto/olm: add tests comparing libolm and goolm, replace crypto/ed25519 -> maunium.net/go/mautrix/crypto/ed25519 2024-08-23 09:16:58 -06:00
event event: remove omitemptys from MSC1767Audio 2024-08-21 10:46:35 +03:00
example Remove separate go.mod for example 2024-05-26 18:26:04 +03:00
federation federation: add query profile and directory wrappers 2024-08-14 14:16:09 +03:00
format format: fix tests 2024-08-09 23:46:56 +03:00
hicli bridgev2/matrix: use cached member list if available 2024-08-20 16:21:41 +03:00
id id: fix typo in ContentURI.IsValid 2024-08-03 22:06:39 +03:00
mediaproxy mediaproxy: add option to force proxying legacy federated downloads 2024-06-19 12:28:12 +03:00
pushrules Implement new push rule condition kinds (#120) 2023-05-24 15:09:43 +03:00
sqlstatestore bridgev2/matrix: use cached member list if available 2024-08-20 16:21:41 +03:00
synapseadmin client: stop using MakeFullRequest unnecessarily 2024-06-15 20:15:06 +03:00
.editorconfig bridgev2/matrix: add OpenAPI spec for provisioning API 2024-08-10 17:43:53 +03:00
.gitignore Add draft of high-level client framework 2024-05-26 18:29:22 +03:00
.pre-commit-config.yaml pre-commit: update, enforce go mod tidy 2024-07-10 12:01:17 -06:00
CHANGELOG.md changelog: update 2024-08-20 16:29:41 +03:00
client.go Beeper extension for client side media dedup (#267) 2024-08-21 19:19:03 +03:00
error.go errors: add status codes to predefined error variables 2024-08-10 23:30:07 +03:00
filter.go Switch to /v3 paths everywhere 2022-04-17 12:59:34 +03:00
go.mod crypto/ed25519: reimplementation with libolm-compatible byte layout 2024-08-23 08:53:01 -06:00
go.sum crypto/ed25519: reimplementation with libolm-compatible byte layout 2024-08-23 08:53:01 -06:00
LICENSE treewide: fixup for pre-commit 2022-01-27 09:35:41 -07:00
README.md Update readme 2024-06-11 21:08:24 +03:00
requests.go client: update beeper inbox request content 2024-08-15 16:10:27 +03:00
responses.go Beeper extension for client side media dedup (#267) 2024-08-21 19:19:03 +03:00
responses_test.go Fix bug 2022-08-04 15:03:05 +03:00
room.go Add method to get full room state 2021-09-30 16:05:56 +03:00
statestore.go bridgev2/matrix: use cached member list if available 2024-08-20 16:21:41 +03:00
sync.go Add contexts to event handlers 2024-01-13 18:56:12 +02:00
syncstore.go Merge remote-tracking branch 'recht/synccontext' 2024-01-07 15:37:18 +02:00
url.go Add path type for synapse admin API 2023-05-19 17:49:53 +03:00
url_test.go Switch to /v3 paths everywhere 2022-04-17 12:59:34 +03:00
version.go Bump version to v0.20.0 2024-08-16 11:54:48 +03:00
versions.go bridgev2/matrix: use beeper inbox state endpoint if available 2024-08-01 15:19:05 +03:00
versions_test.go Parse spec version numbers in /versions response 2022-05-06 14:31:38 +03:00

mautrix-go

GoDoc

A Golang Matrix framework. Used by gomuks, go-neb, mautrix-whatsapp and others.

Matrix room: #go:maunium.net

This project is based on matrix-org/gomatrix. The original project is licensed under Apache 2.0.

In addition to the basic client API features the original project has, this framework also has:

  • Appservice support (Intent API like mautrix-python, room state storage, etc)
  • End-to-end encryption support (incl. interactive SAS verification)
  • High-level module for building puppeting bridges
  • High-level module for building chat clients
  • Wrapper functions for the Synapse admin API
  • Structs for parsing event content
  • Helpers for parsing and generating Matrix HTML
  • Helpers for handling push rules