Matrix.RustSdk.Bindings.Native.All 0.1.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Matrix.RustSdk.Bindings.Native.All --version 0.1.0
                    
NuGet\Install-Package Matrix.RustSdk.Bindings.Native.All -Version 0.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Matrix.RustSdk.Bindings.Native.All" Version="0.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Matrix.RustSdk.Bindings.Native.All" Version="0.1.0" />
                    
Directory.Packages.props
<PackageReference Include="Matrix.RustSdk.Bindings.Native.All" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Matrix.RustSdk.Bindings.Native.All --version 0.1.0
                    
#r "nuget: Matrix.RustSdk.Bindings.Native.All, 0.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Matrix.RustSdk.Bindings.Native.All@0.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Matrix.RustSdk.Bindings.Native.All&version=0.1.0
                    
Install as a Cake Addin
#tool nuget:?package=Matrix.RustSdk.Bindings.Native.All&version=0.1.0
                    
Install as a Cake Tool

GitHub codecov NuGet NuGet

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.

There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.3.0 48 10/19/2026
0.2.0 90 10/12/2026
0.1.0 109 10/3/2026
0.1.0-rc.6 77 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