ubjson / universal-binary-json

Community workspace for the Universal Binary JSON Specification.
116 stars 12 forks source link

A new C++14 Library #63

Open WhiZTiM opened 9 years ago

WhiZTiM commented 9 years ago

Hi everyone, Not sure if this is the proper place to announce this, but nonetheless:

I did a brief study on the various binary alternatives to JSON, and UBJSON happened to be one of those that caught my attention.

For UBJSON, I checked out the libraries available, (Particularly the C and Qt libraries). I honestly didn't find them easy to use in its form... Don't get me wrong, they are great libraries written by awesome developers better than myself. But I felt I had the time to write a C++14 (specific) library from scratch.

Hence I have spent some time writing this, UbjsonCpp -> https://github.com/WhiZTiM/UbjsonCpp Obviously its just an alpha version, there's a lot of refactoring and cleanup to do.

The significant feature of the library that is different from the current C++ implementations are:

Prior to writing this, I implemented a serialization format (I derived) that is purely a variant of both UBJSON and MSGPACK [http://msgpack.org]. But, I felt it's good if I give back to the both communities, starting with UBJSON.

I would love to have your comments, feedback and reviews. They will encourage me further work on the library or discourage me to abandon it.

Regards, Timothy

WhiZTiM commented 9 years ago

By the way, the example files for testing doesn't correspond with what's in the spec. Everything here seems to be a mess, https://github.com/thebuzzmedia/universal-binary-json/tree/master/tests

I suggest, those be removed. I used Python to write a couple of tests and did a lot of cross-reference testing with http://dmitry-ra.github.io/ubjson-test-suite/json-converter.html#{%22arr%22:[1,2.5,3]}

ghost commented 9 years ago

Absolutely the right place to announce this, thank you for the contribution!

I added a link to the /libraries page - http://ubjson.org/libraries/

Also you are right about the old Draft 8 examples - I just erased all the .UBJ files to avoid confusion.


Riyad http://thebuzzmedia.com

On Fri, Feb 20, 2015 at 5:58 PM, Ibrahim Timothy Onogu < notifications@github.com> wrote:

By the way, the example files for testing doesn't correspond with what's in the spec. Everything here seems to be a mess, https://github.com/thebuzzmedia/universal-binary-json/tree/master/tests

I suggest, those be removed. I used Python to write a couple of tests and did a lot of cross-reference testing with http://dmitry-ra.github.io/ubjson-test-suite/json-converter.html#{%22arr%22:[1,2.5,3]} http://dmitry-ra.github.io/ubjson-test-suite/json-converter.html#%7B%22arr%22:%5B1,2.5,3%5D%7D

— Reply to this email directly or view it on GitHub https://github.com/thebuzzmedia/universal-binary-json/issues/63#issuecomment-75346470 .

breese commented 9 years ago

@WhiZTiM protoc is another C++ library, which in addition to UBJSON (albeit only Draft 9) also handles other formats such as JSON, MsgPack and Transenc.

ghost commented 9 years ago

Bjorn - on the protoc website I don't see any explicit mention of UBJSON, just 'JSON' -- is there a mistake?


Riyad http://thebuzzmedia.com

On Sat, Feb 21, 2015 at 5:08 AM, Bjørn Reese notifications@github.com wrote:

@WhiZTiM https://github.com/WhiZTiM protoc http://protoc.sourceforge.net/ is another C++ library, which in addition to UBJSON (albeit only Draft 9) also handles other formats such as JSON, MsgPack and Transenc.

— Reply to this email directly or view it on GitHub https://github.com/thebuzzmedia/universal-binary-json/issues/63#issuecomment-75368996 .

breese commented 9 years ago

@thebuzzmedia I have added it now.

ghost commented 9 years ago

Ditto! :)

http://ubjson.org/libraries/


Riyad http://thebuzzmedia.com

On Mon, Feb 23, 2015 at 6:56 AM, Bjørn Reese notifications@github.com wrote:

@thebuzzmedia https://github.com/thebuzzmedia I have added it now.

— Reply to this email directly or view it on GitHub https://github.com/thebuzzmedia/universal-binary-json/issues/63#issuecomment-75544271 .

Steve132 commented 9 years ago

Cool beans!

As the author if the C implementation can I ask what about it did not satisfy your use cases? Is there any way you found the API to be lacking?