Proton represents the UUID as binary, hence the 16 byte array. For string
representations, such as Ruby's, that would have to be converted to ascii/utf8
hex, and would require the 32 bytes for proper representation.
In python, we have to manually convert the uuid in pn_data_t format into the
native python uuid object type - see bindings/python/proton.py. Sounds like
you'll have something similar in ruby.
Aside, I think the V# type just indicates the method used for generating the 16
byte uuid. V4 uses a random number generator, for example. I think the sizes
are all 16 byte.
----- Original Message -----
> In writing the Qpid::Proton::Data class I hit a stumbling block with
> handling the UUID node type. The pn_uuid_t type is a 16-byte struct,
> what we get in Ruby is a 32 character string  which generates a V4
> So my question is, what sort of UUID are we trying to represent? With
> the size in the pn_uuid_t type we can only hold a V1 UUID. I think we
> should expand it to be a 32-bytes to hold larger modern UUIDs.
> Darryl L. Pierce, Sr. Software Engineer @ Red Hat, Inc.
> Delivering value year after year.
> Red Hat ranks #1 in value among software vendors.