dbus-next
A zero-dependency DBus library for Python with asyncio support
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a running DBus daemon (standard on Linux desktops and mobile environments); Python 3.6 or later.
- 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 · maintenance · safety
MIT (permissive) — MIT license is permissive, allowing free use, modification, and distribution with minimal restrictions—suitable for both open-source and proprietary projects.
last release 2021-07-25 (1846 days) · last repo commit 2024-06-12 · 223 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 411,567 downloads/mo, #6,856 on PyPI
Alternatives
Verify before relying
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())- 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.
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 on it.
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
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.
Requires a running DBus daemon (standard on Linux desktops and mobile environments); Python 3.6 or later.
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())
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 |
| Classifiers | Development Status :: 3 - AlphaEnvironment :: X11 ApplicationsEnvironment :: X11 Applications :: GnomeFramework :: AsyncIOLicense :: OSI Approved :: MIT LicenseProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Desktop Environment :: GnomeTopic :: Software Development :: Embedded SystemsTyping :: Typed |
Evidence: dbus_next-0.2.3-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “dbus python library”
- dbus-nextA pure-Python DBus library for Linux desktop and mobile environments…
- notify2notify2 creates and displays desktop notifications via DBus,…
- sdbusPython library for D-Bus communication with asyncio and blocking call…
Give your agent the search over MCP, or paste the wish link into any chat.
More Embedded Systems packages
Provides Python abstractions and utilities for Controller Area Network (CAN) communication, supporting multiple hardware backends and message logging formats.
Install it if you need to communicate with CAN buses from Python.
Provides quaternion representation, manipulation, and rotation operations for 3D geometry and animation, with support for smooth interpolation between orientations.
Calculates CRC and checksum values from binary data using parametrized algorithms from the CRC catalogue, supporting dozens of standard CRC variants and additive/XOR checksums.
Install it if you need standard CRC calculations; avoid it only if you require active feature development or real-time performance guarantees.
esptool is a serial utility for flashing, provisioning, and interacting with Espressif microcontroller SoCs over a serial connection.
Install it if you develop or deploy firmware on Espressif SoCs.
Provides kconfig language support and IDE tooling for configuring Espressif ESP-IDF embedded projects, including configuration parsing, validation, and documentation generation.
pyOCD is a Python-based debugger and programmer for Arm Cortex-M microcontrollers that works with many debug probes across Linux, macOS, Windows, and FreeBSD.
See also dbus-fast · dbus-python · sdbus · notify2 · desktop-notifier · jeepney · PyGObject · ovos-bus-client · cua-computer · azure-servicebus