Not sure where the data is sourceing and sinking in the customers example but Google Protocol Buffers has a binary transfer with all the conversion built in.
On Tue, Aug 12, 2014 at 4:18 AM, Sergey Lyubka <[email protected]> wrote: > Yes, base64-encoding binary blobs and wrapping resulting text into JSON is > a common practice. Many popular RESTful services do that, for example > GitHub API encodes file text that way. > > Base64 encoding has exactly 4/3 overhead, i.e. output text is 33% larger > then the input data. That determinism is a nice property of base64. > > Using base64 still means that binary blob is transferred. Representation > of floats in binary form is standartized by IEEE (2 formats for single > <http://en.wikipedia.org/wiki/Single-precision_floating-point_format> and > double > <http://en.wikipedia.org/wiki/Double-precision_floating-point_format> > precision). > > So two basic choices are: > > 1. Send a binary blob (base64-encoded or not) of floats. Also send a > hint (in a HTTP header for example), which float format is used (e.g. > "floats are IEEE 754 doubles, with no holes between them", something like > "double arr[N]" in C language would produce). The receiving side would have > all information to unpack the blob properly. Pro: easy to do for C/C++, no > need to transform if both sides use the same standard for floats. Cons: > extra care about exact binary format. > > 2. Transform floats into text, like to JSON or some other format. Pro: > independence from the binary format, easy to debug by a human. Cons: both > sides need to transform, transfer size could be inflated. > > > > > On Mon, Aug 11, 2014 at 2:00 PM, jeff shanab <[email protected]> wrote: > >> I use base64 encoding within json for arbitray binary data. Images, >> encrypted data, C++ POD objects (ok that one is rare) >> >> >> On Mon, Aug 11, 2014 at 8:51 AM, Sergey Lyubka <[email protected]> wrote: >> >>> On Mon, Aug 11, 2014 at 1:18 PM, Jamie Vicary <[email protected]> >>> wrote: >>> >>>> Hi, thanks for your reply. JSON is a plain-text format, right? I would >>>> worry about the increased size of the data packet. >>>> >>>> Is there a platform-safe way to transmit binary data? >>>> >>> >>> There are plenty. >>> All of them transform binary data to the platform independent data using >>> some sort of encoding. >>> JSON is great cause it has relatively small overhead, and is fully human >>> readable. >>> >>> If you're 100% sure that sending and receiving sides are on of the same >>> platform, sending binary blob is an option too -- although it is still a >>> risky play (a software could be built with different compiler options, etc). >>> >>> If you're talking about doubles (which are 8 bytes on common >>> architectures), JSON-encoding might be actually even tighter then the >>> original array. Consider array of zeroes: JSON would be [0,0,0,...], >>> each number taking 2 bytes instead of 8 bytes. >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "mongoose-users" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To post to this group, send email to [email protected]. >>> Visit this group at http://groups.google.com/group/mongoose-users. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "mongoose-users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To post to this group, send email to [email protected]. >> Visit this group at http://groups.google.com/group/mongoose-users. >> For more options, visit https://groups.google.com/d/optout. >> > > -- > You received this message because you are subscribed to the Google Groups > "mongoose-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/mongoose-users. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "mongoose-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/mongoose-users. For more options, visit https://groups.google.com/d/optout.
