[ 
https://issues.apache.org/jira/browse/THRIFT-5772?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17834070#comment-17834070
 ] 

Jens Geyer commented on THRIFT-5772:
------------------------------------

A well-defined byte order is important to be able to exchange uuid bytes across 
platforms. Problem here is that there are in fact several implementations from 
different vendors doing inconsistent stuff (see links below). And there is 
RFC4122 that suggests network order but not everybody follows this.

That's why the docs linked from THRIFT-5587 state explicitly that {*}Thrift 
uses "network" order{*}, which is also consistent with our general integer 
serialisation scheme. Furthermore, there are also test cases intended to test 
exactly this. 

Some helpful and/or amusing links (depends on how you look at it):
 - [https://www.ietf.org/rfc/rfc4122.txt]
 - 
[https://stackoverflow.com/questions/10850075/guid-uuid-compatibility-issue-between-net-and-linux]
 - [https://lists.gnu.org/archive/html/bug-parted/2002-01/msg00099.html]

> Add UUID support for C++
> ------------------------
>
>                 Key: THRIFT-5772
>                 URL: https://issues.apache.org/jira/browse/THRIFT-5772
>             Project: Thrift
>          Issue Type: New Feature
>            Reporter: Carel
>            Priority: Minor
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Starting the discussion to add UUID support for C++.
> I have started with an implementation (See PR linked soon)
> Open points for discussion: 
> # Is there perhaps a need to add a wrapper class for UUID?
> ## I started off with {{std::string}} for ease-of-use
> ## 'ease-of-use' has the drawback of ease of miss-use... 
> ## Something lightweight as a strong wrapper to wrap a `{{uint8_t data[16];}}`
> ### A wrapper gives us the ability to add utility functions, like 
> `to_string()` and `from_string()`
> ### Can use {{boost::uuids::uuid}} in the implementation, hidden from users 
> (see current implementation)
> ## I will see if I can't implement something while this PR is looked at.
> # Can someone help with some cross tests
> ## With the absence of working dockers I am really struggling to get other 
> languages compiled.
> ## I don't have enough experience with other languages to effectively do this
> ## I will probably be able to add Java tests if there is something to build 
> on (pointers needed)
> # How important is the JSON side? 
> ## I did add the support but I see only go has some support for it. 
> # (edit) How important is the HOST vs Network order on the UUID?



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to