dbus-next
A zero-dependency DBus library for Python with asyncio support
What it is and what it does
dbus-next is a pure-Python DBus library designed for integrating applications into Linux desktop and mobile environments. It provides three interface layers: a high-level client API for calling methods and listening to signals on DBus services, a high-level service API for exporting DBus interfaces with decorated methods and properties, and a low-level message API for direct DBus message handling. The library supports both asyncio and GLib main loops, making it suitable for GUI applications and long-running services.
The package has no runtime dependencies and targets modern Python (3.6+) with full type hints. It aims to improve on older DBus libraries by avoiding type guessing, providing complete DBus type system support, and offering nonblocking I/O suitable for responsive applications. Common use cases include controlling media players via MPRIS, automating desktop environments, and building custom DBus services for system integration.
Use it for:
- Control media players or other DBus services from Python scripts using the high-level client interface.
- Export custom DBus services to integrate Python applications into desktop environments.
- Build desktop automation utilities that interact with system services via DBus.
- Create asyncio-based daemon services that respond to DBus method calls and emit signals.
- Inspect and interact with arbitrary DBus services using the low-level message interface.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A pure-Python DBus library for Linux desktop and mobile environments that supports asyncio and GLib main loops, enabling applications to call DBus methods, access properties, listen to signals, and export services.
Yes, if you need DBus integration on Linux. The library is stable, dependency-free, and well-documented. However, be aware it is dormant—no active maintenance since July 2021—so expect no updates for new Python versions or DBus protocol changes. Suitable for stable use cases; risky if you need ongoing support or compatibility with future Python releases.
Install
dbus-next on PyPI
pip
pip install dbus-nextuv
uv add dbus-nextpoetry
poetry add dbus-nextInstalling dbus-next
Before you install
Installation is straightforward with no runtime dependencies. The package is dormant (last commit June 2024, no release since July 2021), so expect no active maintenance or bug fixes, though the codebase is stable for existing use cases.
License in practice
MIT license is permissive, allowing free use, modification, and distribution with minimal restrictions—suitable for both open-source and proprietary projects.
Quickstart
pip install dbus-next
from dbus_next.aio import MessageBus
import asyncio
async def main():
bus = await MessageBus().connect()
introspection = await bus.introspect('org.mpris.MediaPlayer2.vlc', '/org/mpris/MediaPlayer2')
obj = bus.get_proxy_object('org.mpris.MediaPlayer2.vlc', '/org/mpris/MediaPlayer2', introspection)
player = obj.get_interface('org.mpris.MediaPlayer2.Player')
await player.call_play()
asyncio.run(main())
Requires a running DBus daemon (standard on Linux desktops and mobile environments); Python 3.6 or later.
Verify before relying
- Whether dormancy since July 2021 poses compatibility risks with modern DBus protocol versions or Python 3.12+.
- Whether GLib main loop support is production-ready or primarily asyncio-focused in practice.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.6.0) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | dormant — 1,846 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 411,567/month — #6,856 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: dbus_next-0.2.3-py3-none-any.whl
Tags
More Embedded Systems packages
Provides Python abstractions and utilities for…
copyleft · top 5,000 on PyPI
pyquaternionProvides quaternion representation,…
permissive · top 5,000 on PyPI
crccheckCalculates CRC and checksum values from binary…
permissive · top 5,000 on PyPI
esptoolesptool is a serial utility for flashing,…
copyleft · top 5,000 on PyPI
esp-idf-kconfigProvides kconfig language support and IDE…
permissive · top 5,000 on PyPI
pyocdpyOCD is a Python-based debugger and programmer…
permissive · top 5,000 on PyPI
dbus-fastdbus-fast is a Python library for D-Bus…
permissive · top 5,000 on PyPI
dbus-pythonProvides Python bindings to libdbus, allowing…
permissive · top 15,000 on PyPI
sdbusPython library for D-Bus communication with…
copyleft · top 15,000 on PyPI
notify2notify2 creates and displays desktop…
permissive · top 15,000 on PyPI
desktop-notifierSends cross-platform desktop notifications from…
permissive · top 15,000 on PyPI
jeepneyJeepney is a pure Python implementation of…
permissive · top 1,000 on PyPI
PyGObjectPyGObject provides Python bindings for…
copyleft · top 15,000 on PyPI
ovos-bus-clientProvides a Python client to connect to…
permissive · top 15,000 on PyPI
cua-computerCua Computer provides a framework for…
unclear · top 15,000 on PyPI
azure-servicebusAzure Service Bus client library for Python…
unclear · top 1,000 on PyPI