This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: "Smile" data interchange format – news · newspapers · books · scholar · JSTOR (June 2014) (Learn how and when to remove this template message) The topic of this article may not meet Wikipedia's notability guidelines for products and services. Please help to demonstrate the notability of the topic by citing reliable secondary sources that are independent of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the article is likely to be merged, redirected, or deleted.Find sources: "Smile" data interchange format – news · newspapers · books · scholar · JSTOR (March 2014) (Learn how and when to remove this template message) (Learn how and when to remove this template message)
Smile
Filename extension
.sml
Internet media type
application/x-jackson-smile (proposed)
Magic number3a 29 ":)"
Type of formatData interchange
Extended fromJSON
Standardno RFC yet
Websitegithub.com/FasterXML/smile-format-specification

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

Efficiency

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, CBOR 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.

Implementations

Libraries known to support Smile include:

See also

References

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