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.

Reply via email to