Skip to content
Switch branches/tags
Go to file

Latest commit


Git stats


Failed to load latest commit information.

Smile Data Format

"Smile" is a binary data format that defines a binary equivalent of standard JSON data format.

Format was specified in 2010 by Jackson JSON processor development team. First compliant implementation was included as a Jackson backend for Jackson version 1.6, released in September 2010.


Design documentation includes:




Smile Codecs

  • Java
    • Jackson provides Smile support through jackson-dataformat-smile modules) format codec
      • Full support: including streaming access, data binding and tree model (100% parity with textual JSON)
      • NEW (2017) Jackson 2.9 added "non-blocking" ((aka "asynchronous") decoding for JSON and Smile format backends
    • Protostuff project supports Smile both as a low-level data format, and as format used for its RPC implementation
  • JVM, other:
    • Clojure
      • Cheshire library offers support via Jackson jackson-dataformat-smile
  • C
    • libsmile is a small C-library for reading and writing Smile data.
  • Go
    • go-smile Smile decoder written in Golang.
  • Javascript
    • smile-js Smile decoder written in Javascript
  • Python

Frameworks, Systems that use Smile codec (encoder and decoder)

  • Elastic Search uses Smile as transport format supports access using Smile encoding.
  • Apache Solr can use Smile as the response format with the wt=smile parameter.