sliding-sync/README.md
Kegan Dougal 1f5d52fef9 Remove CLI flags; always use env vars
Provides a consistent public-facing API for Docker and direct usage.
2022-07-13 11:20:13 +01:00

2.0 KiB

GitHub branch checks state

sync-v3

Run an experimental sync v3 server using an existing Matrix account. This is possible because, for the most part, v3 sync is a strict subset of v2 sync.

An implementation of MSC3575.

Proxy version to MSC API specification:

  • Version 0.1.x: 2022/04/01
    • First release
  • Version 0.2.x: 2022/06/09
    • Reworked where lists and ops are situated in the response JSON. Added new filters like room_name_like. Added slow_get_all_rooms. Standardised on env vars for configuring the proxy.

Usage

Requires Postgres 13+.

$ createdb syncv3
$ go build ./cmd/syncv3
$ SYNCV3_SERVER="https://matrix-client.matrix.org" SYNCV3_DB="user=$(whoami) dbname=syncv3 sslmode=disable" SYNCV3_BINDADDR=0.0.0.0:8008 ./syncv3

Then visit http://localhost:8008/client/ (with trailing slash) and paste in the access_token for any account on -server.

When you hit the Sync button nothing will happen initially, but you should see:

INF Poller: v2 poll loop started ip=::1 since= user_id=@kegan:matrix.org

Wait for the first initial v2 sync to be processed (this can take minutes!) and then v3 APIs will be responsive.

How can I help?

At present, the best way to help would be to run a local v3 server pointed at a busy account and just leave it and a client running in the background. Look at it occasionally and submit any issues you notice. You can save console logs by right-clicking -> Save As.

Please run the server with SYNCV3_DEBUG=1 set. This will force the server to panic when assertions fail rather than just log them.