Skip to content

michallenc/libshv

 
 

Repository files navigation

ChainPack - the best from both XML and JSON

Motivation

XML

PROS:

  • ability to annotate element with attributes

CONS:

  • boring verbose tag closing, not very usefull when doc is generated by machine.
  • element anotations are not XML. CSS might be also XML if this would be.
  • no standard binary representation

JSON

PROS:

  • not as verbose as XML

CONS:

  • no attributes.
  • no standard binary representation
  • lack of BLOB type
  • Strings are not encoded in UTF8

ChainPack

PROS:

  • binary ChainPack and text Cpon representation with easy and fast conversion (see cp2cp)
  • any value can have metadata. Metadata itself are ChainPack/Cpon again. Even more, the metatada values can have own metadata etc.
  • Cpon is JSON superset with only exception that string values are always encoded in UTF8.
  • binary packed data are relatively small. Size is slightly bigger than MessagePack or Cbor
  • BLOB support
  • C, C++, D, Python, JavaScript bindings

CONS:

  • user have to learn something very new with poor community support

More detailed information can be found on wiki.

Build

qmake SHV_PROJECT_TOP_SRCDIR=`pwd` LIBSHV_SRC_DIR=`pwd` SHV_PROJECT_TOP_BUILDDIR=`pwd`
make

QtCreator qmake additional arguments

SHV_PROJECT_TOP_SRCDIR=%{sourceDir} LIBSHV_SRC_DIR=%{sourceDir} SHV_PROJECT_TOP_BUILDDIR=%{buildDir}

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 72.9%
  • C 9.4%
  • JavaScript 6.6%
  • D 6.5%
  • Python 2.7%
  • QMake 1.3%
  • Other 0.6%