In the TODO file is stated:

* implement support for binary attributes.  the general idea is to
  allow collections of (at a minimum) 64-bit integer, 64-bit floating
  point, and strings.  the type needs to be encoded when written out
  to storage.  there is high-desirability towards using a binary
  encoding format already defined and in popular use like BSON,
  UBJSON, or CBOR.

Can we choose (at least initially) a binary format to get started
with?  From my brief look at the three:

===========

BSON
---------

+ Apache 2 license
+ C implementation available (uses CMake, has extensive test suite), see:
   https://github.com/mongodb/libbson/tree/master/
+ docs: use xml format
+ specification version 1, see:
   http://bsonspec.org/spec.html
+ conversion to/from JSON: ???

+ pros: assume it has lots of use with MongoDB

UBJSON
-------------

+ MIT license
+ C implementation (uses CMake, has small test suite), see:
   https://github.com/Steve132/ubj
+ docs: limited
+ specification draft 12, see:
   http://ubjson.org/
+ conversion to/from JSON: ???

+ pros: simple code
+ cons: limited documentaion

CBOR
---------

+ MIT license
+ C99 implementation available (uses CMake, has extensive test suite), see:
   https://github.com/PJK/libcbor
+ docs: use rst format
+ stable specification (RFC 7049), see:
   http://tools.ietf.org/html/rfc7049
+ conversion to/from JSON:
   - non-normative recommendations in spec
   - ???

+ pros: RFC spec, C99 standard (expedite getting our source onboard
with C99 or, better yet, C++)
+ cons: MSVC still has no support for C99 (let's move to C++!!)

===========

All look usable as 'other' src.  I have not tried any implementations yet.

A caveat: we probably should check docs and conversions to/from JSON
for each version (specification and implementation) which I have not
yet done.

...to be continued

Best,

-Tom

------------------------------------------------------------------------------
_______________________________________________
BRL-CAD Developer mailing list
brlcad-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-devel

Reply via email to