SDKs

Language / PlatformMaintainerRepoMatrix RoomSupports E2E
Matrix.org Android SDKJavaMatrix.org teamhttps://github.com/matrix-org/matrix-android-sdk#riot-android:matrix.orgYes
Matrix.org iOS SDKObjective-CMatrix.org teamhttps://github.com/matrix-org/matrix-ios-sdk#riot-ios:matrix.orgYes
Matrix.org JS SDKJavaScriptMatrix.org teamhttps://github.com/matrix-org/matrix-js-sdkYes
Matrix.org Python SDKPythonMatrix.org teamhttps://github.com/matrix-org/matrix-python-sdk#matrix-python-sdk:matrix.org
Matrix.org MatrixKit (iOS)Objective-CMatrix.org teamhttps://github.com/matrix-org/matrix-ios-kit#riot-ios:matrix.orgYes
Matrix Client SDK for GLibCGergely Polonkaihttps://github.com/gergelypolonkai/matrix-glib-sdk
Net::Async::Matrix (Perl)PerlLeoNerdhttps://metacpan.org/release/Net-Async-Matrix
QuotientC++/QtThe Quotient teamhttps://github.com/quotient-im#quotient:matrix.org
Drupal matrix_api modulePHPfreelockhttps://cgit.drupalcode.org/matrix_api
gomatrixGoMatrix.orghttps://github.com/matrix-org/gomatrix
Matrix Java SDKJavaKamax.iohttps://github.com/kamax-io/matrix-java-sdk#matrix-java-sdk:kamax.io
Glitch in the MatrixRustetahttps://github.com/eeeeeta/glitch-in-the-matrix
godot-matrixC++vurpohttps://gitlab.com/vurpo/godot-matrix
Matrix on HaxeHaxeendeshttps://notabug.org/Tamaimo/haxe-matrix-im
Matrix::ClientPerlmatiaslinahttps://github.com/matiaslina/perl6-matrix-client
mautrix-pythonPythontulirhttps://github.com/tulir/mautrix-python#maunium.net:maunium.net
mautrix-goGoTulirhttps://github.com/tulir/mautrix-go#maunium.net:maunium.net
matrix-js-bot-sdkTypeScriptTravis Ralstonhttps://github.com/turt2live/matrix-js-bot-sdk#matrix-bot-sdk:t2bot.io
mtxclientC++mujxhttps://github.com/mujx/mtxclient
Ruby Matrix SDKRubyAnanacehttps://github.com/ananace/ruby-matrix-sdk#ruby-matrix-sdk:kittenface.studio
maubotPythontulirhttps://github.com/maubot/maubot
MatrixAPIC#VRockerhttps://github.com/VRocker/MatrixAPI
botkit-matrixJavaScriptfrankgerhardthttps://github.com/frankgerhardt/botkit-matrixYes
jmsdkJavama1utahttps://github.com/ma1uta/jmsdk
Matrix-ClientServer-API-javaJavaJojiihttps://github.com/JojiiOfficial/Matrix-ClientServer-API-java
Racket Matrix SDKRacketAidan Gaulandhttps://gitlab.com/aidalgol/racket-matrix-sdk/

Matrix.org Android SDK

Matrix.org's Android SDK (github)

Matrix.org iOS SDK

Matrix.org's iOS SDK.

Matrix.org JS SDK

Matrix.org's JS SDK.

Matrix.org Python SDK

This is a Matrix client-server SDK for Python 2.7 and 3.4+

Community discussion on usage of this SDK and development of this SDK can be found at #matrix-python-sdk:matrix.org.

Documentation can be found at https://matrix-org.github.io/matrix-python-sdk/

Matrix.org MatrixKit (iOS)

Matrix.org's reusable UI interfaces for iOS.

Matrix Client SDK for GLib

A Matrix.org client-server SDK for GLib >= 2.40. It contains both raw API calls and a signal based asynchronous client.

Net::Async::Matrix (Perl)

LeoNerd's Net::Async::Matrix client SDK library for Perl: https://metacpan.org/release/Net-Async-Matrix

Quotient

Quotient (former QMatrixClient) enables application development for Matrix using Qt. Its two main deliverables are libQuotient, the library to make applications that use Matrix, and Quaternion, the reference client using most of libQuotient. Main features for client development are there, with E2EE and support of full-fledged application services development in the roadmap.

Aside from Quaternion, Quotient code is used by Spectral and a few other clients.

The code, releases and issue trackers can be found in the project's GitHub organisation. Aside from the dedicated Matrix room (see above), news about libQuotient and Quaternion are regularly posted to This Week in Matrix.

Drupal matrix_api module

A Drupal API module to facilitate posting messages into Matrix rooms. Drupal.org

gomatrix

Official Golang Matrix client SDK, as used by go-neb and others

Matrix Java SDK

The Java SDK provides a low level (I/O synchronous) object oriented library to interact with Matrix. It is aimed to regular clients, bots, bridges and generic Application Services.

It is currently work in progress, is incomplete and is early alpha.

Github

Glitch in the Matrix

Glitch in the Matrix is a set of (minimal) Matrix bindings for Rust.

https://github.com/eeeeeta/glitch-in-the-matrix

godot-matrix

Module for Godot Engine that lets you easily integrate a Matrix client into a game developed using Godot (for example for in-game chat, matchmaking, lobbies, or something else entirely). Source

Matrix on Haxe

Implementation of client-server matrix API in haxe using HaxeHttpClient.

haxelib Source

Matrix::Client

Perl6 Matrix client. github

mautrix-python

mautrix-python is a Python 3 asyncio Matrix framework.

mautrix-go

A Golang Matrix framework.

matrix-js-bot-sdk

Bots on matrix often have very different requirements than regular clients or users. This SDK is aimed towards making bots more lightweight and responsive. Much of the library is a direct proxy to the client/server API, however it abstracts away the HTTP part as much as possible.

The source, and more information, can be found on GitHub.

mtxclient

SDK built on top of Boost.Asio

Ruby Matrix SDK

An SDK for building Matrix communication applications in Ruby

Available on github, and on rubygems.org as matrix_sdk.

Some examples can be found on github as well.

maubot

A plugin-based Matrix bot system written in Python.

MatrixAPI

A Matrix library for C# UWP.

botkit-matrix

A Botkit connector for Matrix

Install

$ npm install botkit-matrix

Usage

let config = {
    'baseUrl': 'https://matrix.org',
    'botUserId': '@youruserid:matrix.org',
    'password': 'yourpassword',
    'localStorage': 'filepath'
};

require('botkit-matrix').MatrixController(config)
.then((controller) => {

    controller.hears(['hi', 'hello'], 'message_received', function (bot, message) {
        bot.reply(message, "Hello, world!");
    });
});

You can get a sample bot at botkit-matrix-sample

For more features see Botkit Core

jmsdk

Modules

client-sdk

Matrix client with the full support of the Client-Server API.

bot-sdk

Core classes to write bots and appservice. (WIP)

common-backend

Common classes used in all sdk and implementations. (WIP)

homeserver-backend

Core classes to write custom homeserver. (Empty)

identity-backend

Core classes to write custom identity server. (WIP)

Matrix-ClientServer-API-java

A small and simple java API for the Matrix ClientServer Protocol (see clientServer api) The API is still in Beta and known for bugs. If you found or missing a feature one you can create a new issue.

Usage

Login

With credentials

//https not supported yet
Client c = new Client("http://matrix.your.server.xyz:8008");  
c.login("examplebot", "wordpass123", loginData -> {  
  if (loginData.isSuccess()) {
    //Do sth with the bot
  } else {  
    System.err.println("error logging in");  
  }
});

With Usertoken

//https not supported yet
Client c = new Client("http://matrix.your.server.xyz:8008");  
c.login("Y0ur70ken", loginData -> {  
  if (loginData.isSuccess()) {
    //Do sth with the bot
  } else {  
    System.err.println("error logging in");  
  }
});

For an examplebot you can have a look at my Grep Bot

Features

  • Login
    • UserID/Password
    • Usertoken
  • Events
    • Receive&Send roomevents (join, messages, typing, ....)
    • Get eventdata by EventID
    • Multiple eventlistener
    • Receive events happend when bot was offline
    • Custom sync filter
  • User
    • Presence
    • Typing
    • Receipts
    • Send text/messages (formatted and raw)
    • Login/Logout/Logout all
    • Join/leave room
    • Get roommembers
    • Kick
    • Ban
    • Unban
    • Create new room

Racket Matrix SDK

Available on GitLab. Still very early stages and only useful to developers already familiar with both the Matrix client API and the Racket language.