Skip to content

Conversation

@dvdhrm
Copy link
Member

@dvdhrm dvdhrm commented Jan 9, 2026

Introduce the fmt::dbus module with a complete D-Bus type-system. This adds the element module, as well as the signature module. Combined they provide full parsers of D-Bus type strings with support for a range of variants:

  • DVariant: The classic D-Bus wire format as defined by the original dbus-specification, but including extensions up to the current version.

  • GVariant: A complete rework of the wire-format, but type-system compatible with DVariant. It is mainly used by the GNOME project and glib.

  • Json: A new GVariant-compatible version, but using JSON as encoding.

dbus::Sig is the main type of the type-system. It represents a D-Bus Single Complete Type, but provides pre-formatted information on the full type and all its sub-types.

dbus::Cursor is used to iterate over a type and its individual elements. It is only needed when introspecting unknown types.

Introduce the `fmt::dbus` module with a complete D-Bus type-system. This
adds the `element` module, as well as the `signature` module. Combined
they provide full parsers of D-Bus type strings with support for a range
of variants:

- `DVariant`: The classic D-Bus wire format as defined by the original
  dbus-specification, but including extensions up to the current
  version.

- `GVariant`: A complete rework of the wire-format, but type-system
  compatible with `DVariant`. It is mainly used by the GNOME project and
  glib.

- `Json`: A new `GVariant`-compatible version, but using JSON as
  encoding.

`dbus::Sig` is the main type of the type-system. It represents a D-Bus
Single Complete Type, but provides pre-formatted information on the full
type and all its sub-types.

`dbus::Cursor` is used to iterate over a type and its individual
elements. It is only needed when introspecting unknown types.

Signed-off-by: David Rheinsberg <david@readahead.eu>
@dvdhrm dvdhrm merged commit 8f14733 into bus1:main Jan 9, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant