Concise Binary Object Representation (CBOR) binary serialization library.
    MrSmith via Digitalmars-d-announce 
    digitalmars-d-announce at puremagic.com
       
    Fri Dec 19 10:26:25 PST 2014
    
    
  
The Concise Binary Object Representation (CBOR) is a data format
whose design goals include the possibility of extremely small code
size, fairly small message size, and extensibility without the 
need
for version negotiation.  These design goals make it different 
from
earlier binary serializations such as ASN.1 and MessagePack.
Here is more info about format: http://cbor.io/
You can easily encode and decode things like built-in types, 
arrays, hash-maps, structs, tuples, classes, strings and raw 
arrays (ubyte[]).
Here is some simple code:
     import cbor;
     struct Inner
     {
         int[] array;
         string someText;
     }
     struct Test
     {
         ubyte b;
         short s;
         uint i;
         long l;
         float f;
         double d;
         ubyte[] arr;
         string str;
         Inner inner;
         void fun(){} // not encoded
         void* pointer; // not encoded
         int* numPointer; // not encoded
     }
     ubyte[1024] buffer;
     size_t encodedSize;
     Test test = Test(42, -120, 111111, -123456789, 0.1234, 
-0.987654,
         cast(ubyte[])[1,2,3,4,5,6,7,8], "It is a test string",
         Inner([1,2,3,4,5], "Test of inner struct"));
     encodedSize = encodeCborArray(buffer[], test);
     // ubyte[] and string types are slices of input ubyte[].
     Test result = decodeCborSingle!Test(buffer[0..encodedSize]);
     // decodeCborSingleDup can be used to auto-dup those types.
     assert(test == result);
Here is github link: https://github.com/MrSmith33/cbor-d
Destroy!
    
    
More information about the Digitalmars-d-announce
mailing list