Matrix.RustSdk.Bindings
0.1.0
See the version list below for details.
dotnet add package Matrix.RustSdk.Bindings --version 0.1.0
NuGet\Install-Package Matrix.RustSdk.Bindings -Version 0.1.0
<PackageReference Include="Matrix.RustSdk.Bindings" Version="0.1.0" />
<PackageVersion Include="Matrix.RustSdk.Bindings" Version="0.1.0" />
<PackageReference Include="Matrix.RustSdk.Bindings" />
paket add Matrix.RustSdk.Bindings --version 0.1.0
#r "nuget: Matrix.RustSdk.Bindings, 0.1.0"
#:package Matrix.RustSdk.Bindings@0.1.0
#addin nuget:?package=Matrix.RustSdk.Bindings&version=0.1.0
#tool nuget:?package=Matrix.RustSdk.Bindings&version=0.1.0
Matrix.RustSdk
An unofficial C# wrapper for matrix-rust-sdk, the Rust SDK for the Matrix protocol. This project is community-maintained and not affiliated with The Matrix.org Foundation.
Installation
The managed bindings and the native libraries are shipped in separate packages, so applications only download the
platforms they need. Reference the native packages for the platforms the application runs on, they bring the matching
Matrix.RustSdk.Bindings package:
<PackageReference Include="Matrix.RustSdk.Bindings.Native.Linux" Version="0.1.0" />
<PackageReference Include="Matrix.RustSdk.Bindings.Native.Windows" Version="0.1.0" />
| Package | Platforms |
|---|---|
Matrix.RustSdk.Bindings.Native.Linux |
linux-x64, linux-arm64, linux-musl-x64, linux-musl-arm64 |
Matrix.RustSdk.Bindings.Native.Windows |
win-x64, win-arm64 |
Matrix.RustSdk.Bindings.Native.MacOS |
osx-x64, osx-arm64 |
Matrix.RustSdk.Bindings.Native.All |
all of the above |
The native libraries only work with the bindings of the exact same version, so the native packages depend on exactly
that version of Matrix.RustSdk.Bindings. The glibc libraries require glibc 2.35 or newer (Ubuntu 22.04, Debian 12,
RHEL 10), the musl libraries libgcc (installed with .NET on Alpine).
The packages contain matrix-rust-sdk and the Rust crates it depends on, their licenses and copyright notices are in
THIRD-PARTY-NOTICES.txt in every package.
The bindings are generated from matrix-rust-sdk, the release notes of
each package name the matrix-sdk-ffi release it was built from. The API follows the upstream SDK, which changes with
almost every release, so minor versions of the packages contain breaking changes until 1.0.
Development
The development environment is managed with devenv, devenv shell provides Rust, .NET and
uniffi-bindgen-cs.
git submodule update --init
devenv shell
./scripts/build-debug.sh # builds matrix-sdk-ffi for the host and regenerates the C# bindings
dotnet test # runs the tests against a tuwunel homeserver, requires docker
The uniffi version used by external/matrix-rust-sdk has to match the one uniffi-bindgen-cs is built for
(UNIFFI_RS_VERSION in devenv.nix). When updating the submodule, pick a matrix-sdk-ffi/* tag whose uniffi
version matches the latest uniffi-bindgen-cs release.
Releases
See RELEASING.md for versioning and the release process.
The Packages workflow builds the native libraries on native GitHub runners for every platform, tests them and packs the NuGet packages, the Publish NuGet package workflow publishes them. Pull requests run the same builds once the basic build and tests passed.
Each library is tested on its runner before it is packed. The Linux runners run all tests, the musl libraries are built and tested in Alpine containers. The Windows and macOS runners can't run the Linux homeserver container and only run the smoke tests that don't need a homeserver.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
NuGet packages (4)
Showing the top 4 NuGet packages that depend on Matrix.RustSdk.Bindings:
| Package | Downloads |
|---|---|
|
Matrix.RustSdk.Bindings.Native.Linux
Unofficial native matrix-rust-sdk libraries for Matrix.RustSdk.Bindings on Linux (glibc and musl, x64 and arm64). Not affiliated with The Matrix.org Foundation. |
|
|
Matrix.RustSdk.Bindings.Native.MacOS
Unofficial native matrix-rust-sdk libraries for Matrix.RustSdk.Bindings on macOS (x64 and arm64). Not affiliated with The Matrix.org Foundation. |
|
|
Matrix.RustSdk.Bindings.Native.Windows
Unofficial native matrix-rust-sdk libraries for Matrix.RustSdk.Bindings on Windows (x64 and arm64). Not affiliated with The Matrix.org Foundation. |
|
|
Matrix.RustSdk
Idiomatic C# helpers for the matrix-rust-sdk bindings (Matrix.RustSdk.Bindings): subscriptions as IAsyncEnumerable, live lists, message helpers and stored sessions. The native libraries are shipped separately in the Matrix.RustSdk.Bindings.Native.* packages. Not affiliated with The Matrix.org Foundation. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.3.0 | 105 | 10/19/2026 |
| 0.2.0 | 124 | 10/12/2026 |
| 0.1.0 | 125 | 10/3/2026 |
| 0.1.0-rc.6 | 73 | 10/2/2026 |
Built from matrix-rust-sdk matrix-sdk-ffi/20260909: https://github.com/matrix-org/matrix-rust-sdk/tree/matrix-sdk-ffi/20260909