A Golang Matrix framework.
  • Go 99.7%
  • PLpgSQL 0.3%
Find a file
Toni Spets 080ad4c0a0 crypto: Allow decrypting message content without event id or ts
Replay attack prevention shouldn't store empty event id or ts to
database if we're decrypting without them. This may happen if we are
looking into a future delayed event for example as it doesn't yet have
those.

We still prevent doing that if we already know them meaning we have
gotten the actual event through sync as that's also when a delayed event
would move from scheduled to finalised and then it also contains those
fields.
2025-10-14 14:22:42 +03:00
.github/workflows ci: disable tests on goolm again 2025-08-17 13:15:53 +03:00
appservice appservice/intent: add room ID to fake join response 2025-10-02 22:10:22 +03:00
bridgev2 bridgev2/provisionutil: don't allow self in create group participants 2025-10-14 13:01:21 +03:00
commands commands: add safety to type check 2025-07-15 13:19:44 +03:00
crypto crypto: Allow decrypting message content without event id or ts 2025-10-14 14:22:42 +03:00
event event: add Clone for other capability types too 2025-10-06 17:05:46 +03:00
example pre-commit: ban log.Str(x.String()) 2025-08-29 11:07:16 +03:00
federation federation/eventauth: require that join authorizer is in the room 2025-10-03 22:51:38 +03:00
format format: add MarkdownMentionRoomID helper 2025-08-24 00:47:55 +03:00
id id/userid: split validation into 2 functions 2025-10-06 23:10:04 +03:00
mediaproxy bridgev2,federation,mediaproxy: enable http access logging 2025-07-29 17:10:50 +03:00
mockserver crypto: add basic group session sharing benchmark 2025-09-26 20:37:58 +03:00
pushrules event,pushrules: replace assert.Nil with assert.NoError 2025-08-21 13:19:11 +03:00
sqlstatestore sqlstatestore: fix GetPowerLevels returning non-nil even if power levels weren't found 2025-08-25 18:27:49 +03:00
synapseadmin synapseadmin: fix response structs again 2025-05-27 15:57:40 +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: ban log.Str(x.String()) 2025-08-29 11:07:16 +03:00
CHANGELOG.md changelog: update 2025-10-13 15:30:12 +03:00
client.go crypto/helper: don't block on decryption 2025-10-05 12:30:54 +03:00
error.go bridgev2,error: use NonNilClone instead of creating map manually 2025-10-01 14:48:11 +03:00
filter.go filter: add unread_thread_notifications to FilterPart 2024-12-19 13:13:27 -07:00
go.mod bridgev2,error: use NonNilClone instead of creating map manually 2025-10-01 14:48:11 +03:00
go.sum bridgev2,error: use NonNilClone instead of creating map manually 2025-10-01 14:48:11 +03: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: add user directory search method 2025-09-22 13:46:46 +03:00
responses.go responses: fix RespSearchUserDirectory type 2025-09-22 14:30:41 +03:00
responses_test.go crypto: add basic group session sharing benchmark 2025-09-26 20:37:58 +03:00
room.go Add method to get full room state 2021-09-30 16:05:56 +03:00
statestore.go all: add support for creator power 2025-07-18 23:59:28 +03:00
sync.go crypto/helper: don't block on decryption 2025-10-05 12:30:54 +03:00
syncstore.go Merge remote-tracking branch 'recht/synccontext' 2024-01-07 15:37:18 +02:00
url.go client: add some nil safety 2025-03-12 19:48:05 +02:00
url_test.go Switch to /v3 paths everywhere 2022-04-17 12:59:34 +03:00
version.go version: initialize go.mod version regex lazily 2025-09-28 20:39:07 +03:00
versions.go client: re-add support for unstable profile fields 2025-09-26 12:55:36 +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