On Mon, 13 May 2019 at 10:38:38 +0200, Lennart Poettering wrote: > On So, 12.05.19 13:06, Stanislav Angelovič (angelovic.s@xxxxxxxxx) wrote: > > Quick question: Would it be possible to extend sd-bus to also allow > > creating messages without requiring a bus? > > This used to be available but we dropped it, since the serialization > depends on the bus feature set, i.e. wheter fd passing is available, > and whether gvariant serialization is available. I think it might make sense to have a way to serialize data to a D-Bus 1.0 message, and/or to a GVariant. I agree that it doesn't make sense to serialize to an unspecified D-Bus-adjacent binary format, unless you already know which bus you are talking to, in which case you should use the most natural format for that bus. > What's the usecase for using bus message as general marshalling > storage anyway? Can you elaborate? Various GLib-related projects like gvdb (used in dconf) and libostree use GVariant as a stable on-disk encoding for strongly-typed data, reusing GVariant's D-Bus-inspired type model, in the same sorts of places that a different project might have used (for example) JSON, XDR or Protocol Buffers. Again, this is a reasonable thing to do with data known to be serialized in GVariant format, or known to be serialized in D-Bus 1.0 format, but not a reasonable thing to do with a binary format that might be GVariant or D-Bus 1.0 or some future message encoding. If what you want is a "variant" type, note that the recursive type systems of both GVariant and D-Bus 1.0 require out-of-band information to encode/decode. For both formats, you need to know the type signature (e.g. "a{sv}") and the byte-order (big- or little-endian), and for GVariant you additionally need to know the message length in bytes. On D-Bus this information is already available in the message header, but if you're using GVariant or D-Bus 1.0 as a standalone serialization you will need to provide or reinvent a subset of the message header. smcv _______________________________________________ systemd-devel mailing list systemd-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/systemd-devel