A scala library automatically generated from the matrix specification
This library is NOT:
A fully fletched client with batteries included(caching, highlevel abstraction, automatic de-/ encryption,...).
A full client is planned for the future, as a seperate library
This library is:
a simple interface to the matrix api. With just enough to build an actual client.
It provides strong typing, api calls to the server, automatic JSON (de/)serialization
This library encapsulates:
- the client server api
- the push-gateway api
- the application service api
- the identity service api
- events used in the specification
- An ApiInvoker which handles request serialization and response deserialization
Some basic examples are provided: examples
A prebuilt is provided: build/matrix-scala
mkdir build
# retrieve the matrix specification. Replace it with a fork if desired
git clone [email protected]:matrix-org/matrix-spec.git build/matrix-spec
# generate it
python src/main.py \
--spec-path ./build/matrix-spec/data/ \
--build-config ./build_config.yaml \
--output ./build/matrix-scala \
--templates ./templates
cd ./build/matrix-scala/
# use scalafmt to make it pretty
sbt scalafmtAll
# compile it
sbt compile
# for local testing
sbt publishLocal
cd -
- https://matrix.org/
- https://spec.matrix.org/v1.6/
- https://gitlab.matrix.org/matrix-org/olm
- https://matrix.org/docs/guides/client-server-api
- https://matrix.org/docs/develop
- Integration of Olm via JNI for E2EE
- File up- / download
- Login + different authentication types
- a pom.xml for maven
- the server-server api (low priority)