SDKs are pieces of software meant for developers, that take care of the technical Matrix protocol calls behind the scenes. They allow them to focus on where they can add the most value. If you're not a developer, this section of the website is probably not for you.

There are two fundamental types of SDKs: clients and appservices. This distinction is quite academical, and we went for a more pragmatic approach. You will find below SDKs by type of product you may want to create (namely: clients, bots, bridges). Don't be surprised if the same SDK appears in several sections!

If you are a developer and are not sure what the difference between clients and appservices is, please head to the developers documentation.

Client SDKs are used to develop clients humans will interact with. They handle all the Matrix heavy lifting and leave it up to the developer to implement a UI.

The SDK can support any of the maturity levels checked.

The client can support any of the licences checked.

The client must support any of the languages checked.

matrix-communication-client

Stable
Réda Housni Alaoui
MIT
Java

A java client for the Matrix protocol.

Trixnity

Stable
Trixnity Team
Apache-2.0
Kotlin

Multiplatform Kotlin SDK for developing Clients, Bots, Appservices and Servers.

Matrix Dart SDK

Stable
Famedly GmBH
AGPL-3.0
Dart

Matrix SDK written in dart.

mautrix-python

Stable
Tulir
MPL-2.0
Python

A Python 3 asyncio Matrix framework.

mautrix-go

Stable
Tulir
MPL-2.0
Go

A Golang Matrix framework.

matrix-nio

Stable
poljar
ISC
Python

A Python Matrix client library, designed according to sans I/O principles.

Ruma

Stable
Ruma team
MIT
Rust

A set of Rust crates for interacting with the Matrix chat network.

Matrix.org JS SDK

Stable
Matrix.org team
Apache-2.0
JavaScript

Matrix Client-Server SDK for JavaScript.

gomatrix

Obsolete
Matrix.org
Apache-2.0
Go

A Golang Matrix client.

matrix_dotnet

Beta
Greenscreener
GPL-3.0-or-later
C#

Matrix client SDK in C#

Matrix.swift

Beta
cvwright
Apache-2.0
Swift

Matrix client SDK in Swift

Elm SDK

Beta
Bram Noordstar
EUPL-1.2
Elm

A more consistent alternative to the matrix-js-sdk written in Elm.

libcmatrix

Beta
LGPL-2.1-only
C

A matrix client client library written in GObjectified C

Rory&::LibMatrix

Beta
Rory& and other contributors
AGPL-3.0
C#

A .NET 8 library for interacting with Matrix.

µtrix

Beta
Dominik George; Project Hack'n'Fun @ Teckids e.V.
Apache-2.0
Python

Matrix client library for MicroPython.

matrix-rust-sdk

Beta
poljar
Apache-2.0
Rust

An implementation of a Matrix client-server library in Rust.

matrix-kt

Beta
Dominic Fischer
Apache-2.0
Kotlin

Kotlin libraries for Matrix.

libkazv

Beta
The Kazv Project
AGPL-3.0-or-later
C++

A matrix client sdk built upon lager and the value-oriented design it enables.

Trixnity Messenger

Beta
connect2x GmbH
AGPL-3.0
Kotlin

Multiplatform Kotlin SDK for developing messengers on top of Trixnity

Ruby Matrix SDK

Beta
Ananace
MIT
Ruby

Ruby SDK for the Matrix communication protocol.

Quotient

Beta
The Quotient team
LGPL-2.1-only
C++

A Qt5 library to write cross-platform clients for Matrix

Matrix.org iOS SDK

Beta
Matrix.org team
Apache-2.0
Objective-C

The Matrix SDK for iOS.

Matrix-ClientServer-API-java

Beta
Jojii
Unknown
Java

A small and simple java API for the Matrix ClientServer Protocol.

Matrix C# SDK

Beta
Baking Bad
MIT
C#

Build .NET apps compatible with the Matrix Protocol.

dial-phone

Alpha
mtorials
Apache-2.0
Kotlin

A Matrix client-server SDK written in Kotlin.

Bot SDKs are used to develop bots no humans will interact with. They handle all the Matrix heavy lifting so the developer can focus on what the bot is actually useful for.

The SDK can support any of the maturity levels checked.

The client can support any of the licences checked.

The client must support any of the languages checked.

matrix-communication-client

Stable
Réda Housni Alaoui
MIT
Java

A java client for the Matrix protocol.

Trixnity

Stable
Trixnity Team
Apache-2.0
Kotlin

Multiplatform Kotlin SDK for developing Clients, Bots, Appservices and Servers.

mautrix-python

Stable
Tulir
MPL-2.0
Python

A Python 3 asyncio Matrix framework.

mautrix-go

Stable
Tulir
MPL-2.0
Go

A Golang Matrix framework.

matrix-nio

Stable
poljar
ISC
Python

A Python Matrix client library, designed according to sans I/O principles.

Ruma

Stable
Ruma team
MIT
Rust

A set of Rust crates for interacting with the Matrix chat network.

Simple-Matrix-Bot-Lib

Stable
KrazyKirby99999
MIT
Python

An easy to use bot library for the Matrix ecosystem written in Python.

MatrixBot .NET Core SDK

Stable
enimatek-nl
MIT
C#

Build .NET chat bots compatible with the Matrix Protocol. It has support for a limited subset of the APIs.

Matrix.org JS SDK

Stable
Matrix.org team
Apache-2.0
JavaScript

Matrix Client-Server SDK for JavaScript.

Matrix.org AS Node SDK

Stable
Matrix.org team
Apache-2.0
JavaScript

Matrix Application Service framework in Node.js.

matrix_dotnet

Beta
Greenscreener
GPL-3.0-or-later
C#

Matrix client SDK in C#

mxbt

Beta
kulebyaka
GPL-3.0
Python

Yet another matrix bot library.

Rory&::LibMatrix

Beta
Rory& and other contributors
AGPL-3.0
C#

A .NET 8 library for interacting with Matrix.

µtrix

Beta
Dominik George; Project Hack'n'Fun @ Teckids e.V.
Apache-2.0
Python

Matrix client library for MicroPython.

matrix-rust-sdk

Beta
poljar
Apache-2.0
Rust

An implementation of a Matrix client-server library in Rust.

matrix-kt

Beta
Dominic Fischer
Apache-2.0
Kotlin

Kotlin libraries for Matrix.

matrix-bot-sdk

Beta
Travis Ralston
MIT
TypeScript

TypeScript/JavaScript SDK for Matrix bots.

libkazv

Beta
The Kazv Project
AGPL-3.0-or-later
C++

A matrix client sdk built upon lager and the value-oriented design it enables.

Ruby Matrix SDK

Beta
Ananace
MIT
Ruby

Ruby SDK for the Matrix communication protocol.

Quotient

Beta
The Quotient team
LGPL-2.1-only
C++

A Qt5 library to write cross-platform clients for Matrix

Matrix-ClientServer-API-java

Beta
Jojii
Unknown
Java

A small and simple java API for the Matrix ClientServer Protocol.

Matrix C# SDK

Beta
Baking Bad
MIT
C#

Build .NET apps compatible with the Matrix Protocol.

dial-phone

Alpha
mtorials
Apache-2.0
Kotlin

A Matrix client-server SDK written in Kotlin.

Bridge SDKs are used to develop appservices meant to either connect a Matrix community to a third party chat platform, or to exchange data with another platform.

The SDK can support any of the maturity levels checked.

The client can support any of the licences checked.

The client must support any of the languages checked.

Trixnity

Stable
Trixnity Team
Apache-2.0
Kotlin

Multiplatform Kotlin SDK for developing Clients, Bots, Appservices and Servers.

mautrix-python

Stable
Tulir
MPL-2.0
Python

A Python 3 asyncio Matrix framework.

mautrix-go

Stable
Tulir
MPL-2.0
Go

A Golang Matrix framework.

matrix-appservice-bridge

Stable
Matrix.org
Apache-2.0
TypeScript

Bridging infrastructure for Application Services.

Ruma

Stable
Ruma team
MIT
Rust

A set of Rust crates for interacting with the Matrix chat network.

Matrix.org JS SDK

Stable
Matrix.org team
Apache-2.0
JavaScript

Matrix Client-Server SDK for JavaScript.

Matrix.org AS Node SDK

Stable
Matrix.org team
Apache-2.0
JavaScript

Matrix Application Service framework in Node.js.

Rory&::LibMatrix

Beta
Rory& and other contributors
AGPL-3.0
C#

A .NET 8 library for interacting with Matrix.

matrix-rust-sdk

Beta
poljar
Apache-2.0
Rust

An implementation of a Matrix client-server library in Rust.

matrix-bot-sdk

Beta
Travis Ralston
MIT
TypeScript

TypeScript/JavaScript SDK for Matrix bots.