Smile (data interchange format)

From Wikipedia, the free encyclopedia
  (Redirected from Smile (Data Interchange Format))
Jump to: navigation, search
Filename extension .sml
Internet media type application/x-jackson-smile (proposed)
Type of format Data interchange
Extended from JSON
Standard no RFC yet

Smile is a computer data interchange format based on JSON. It can also be considered as a binary serialization of generic JSON data model, which means that tools that operate on JSON may be used with Smile as well, as long as proper encoder/decoder exists for tool to use. The name comes from first 2 bytes of the 4 byte header, which consist of Smiley ":)" followed by a linefeed: choice made to make it easier to recognize Smile-encoded data files using textual command-line tools.


Compared to JSON, Smile is both more compact and more efficient to process (both to read and write).[1] Part of this is due to more efficient binary encoding (similar to BSON and UBJSON), but an additional feature is optional use of back references for property names and values. [2] Back referencing allows replacing of property names and/or short (64 bytes or less) String values with 1- or 2-byte reference ids.


Libraries known to support Smile include:

See also[edit]


  1. ^ "JVM Serializer Benchmark (results)". Retrieved 7 Jun 2014. 
  2. ^ "Shared String References in Smile". Retrieved 7 Jun 2014. 

External links[edit]