M § Some KBs of Flash RAM and SRAM § Speed 40..120MHz § Networking often included (i.E. WiFi, BLE) § Typically no full OS (i.e. Linux) at most embedded OS due to lack of MMUs (C) Particle, Redbear, Arduino
for IoT 16 04.10.16 Larger size of complex data formats (esp. XML) Sometimes low bandwidth on network channels (i.e. LoraWAN) or cost-intensive (i.e. GSM) Network Packet sizes (fragmentation issues) Size of request & its structure is not known before
buffering Small code size of parser (at first: availability of parser for embedded..) Safe & robust handling of malformed input Standards Support schemas for a data format & its parser, on a constrained device
intermediate buffering Small code size of parser (at first: availability of parser for embedded..) Safe & robust handling of malformed input Standards Support schemas compression of up to 90% possible most do direct processing of binary data some do, some don't
Designed for efficient transmission over the wire § "supported by over 50 languages" § Compatible to JSON "MessagePack is an efficient binary serialization format" § Implementation suitable for embedded (ludocode/mpack) § Compression § No Schema § Parser with Expect-style API § Specified, not standardized
Compatible to JSON § RFC 7049 § Implementations for >15 languages Concise Binary Object Representation "...design goals include the possibility for (...) small code sizes, (...) small message size and extensibility (...)" § Suitable for embedded (TinyCBOR) § CDDL as spec & validation language/tool § Compression rates comparable to msgpack
C++, Java, Py, PHP, Ruby, Erlang, Javascript, ... § Schema-based (".thrift file") § Parser/Serializer Code is generated by the Thrift Compiler § .. is a full protocol stack including a service layer "... for scalable cross-language service development" § embedded implementations? § Size efficient binary representations
Implementations for C++, Java, .NET, JS § Schema-aware (XSD) § Entropy-encoded binary representation of XML data as stream of events Binary representation of XML Information Sets § No OSS embedded implementations (as of May 2016) § Highest compression rates, typically >90% (!)