From https://www.freedesktop.org/wiki/Software/dbus/:
D-Bus is a message bus system, a simple way for applications to talk to one another. In addition to interprocess communication, D-Bus helps coordinate process lifecycle; it makes it simple and reliable to code a "single instance" application or daemon, and to launch applications and daemons on demand when their services are needed.
Tmds.DBus provides .NET libraries for working with D-Bus from .NET.
Tmds.DBus.Protocol
Tmds.DBus.Protocol is a modern, high-performance library that uses types introduced in .NET Core 2.1 (like Span<T>) for low-allocation, high-performance protocol implementation.
- Targets .NET Standard 2.0, 2.1, .NET 6.0, 8.0, and 9.0
- Compatible with NativeAOT/Trimming (use .NET 8 or higher)
- High-performance with minimal allocations
- Modern .NET primitives
The following code generators are available for Tmds.DBus.Protocol:
- Tmds.DBus.Tool: CLI tool that supports generating proxy only.
- Tmds.DBus.Generator: Roslyn source Generator that supports generating proxy only.
- affederaffe/Tmds.DBus.SourceGenerator: Roslyn source Generator that supports generating proxy and handler types.
Tmds.DBus
Tmds.DBus is based on dbus-sharp (a fork of ndesk-dbus). It builds on the protocol implementation of dbus-sharp and provides an API based on the asynchronous programming model introduced in .NET 4.5.
- Targets .NET Standard 2.0 and .NET 6.0
- Runs on .NET Framework 4.6.1+, .NET Core, and .NET 6+
- Async/await support
The following code generators are available for Tmds.DBus:
- Tmds.DBus.Tool: CLI tool that supports generating proxy and handler types.
Contributing
Found a bug or want to request a feature? Please open an issue on GitHub.
We welcome pull requests on GitHub! Unless you're making a trivial change, open an issue to discuss the change before making a pull request.