Expressing large integer values in D-Bus APIs

Thiago Macieira thiago at
Mon Jul 17 22:34:08 UTC 2017

On segunda-feira, 17 de julho de 2017 12:12:09 PDT Andy Grover wrote:
> Hi all,
> If we have a large integer value that might exceed 64 bits, how best to
> expose it on D-Bus? Convert to string? an array of [u64 (high), u64
> (low)]? An array of 16 bytes and specify endianness?
> Another solution (but the most work) would be to add INT/UINT128 basic
> types. Is that within the realm of possibility?

I don't think it is.

I'd recommend you just follow regular "bigint" type marshalling in other 
binary protocols. For example, CBOR[1] sends an array of bytes just long 
enough (no extraneous zero bytes) and, since it's a network protocol, in 
network byte order. The D-Bus header has a big/little flag, but it's not always 
accessible to the application layer, so you may need to choose a single 


Thiago Macieira - thiago (AT) - thiago (AT)
   Software Architect - Intel Open Source Technology Center

More information about the dbus mailing list