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.
Specification
Design documentation includes:
Community
Documentation
Implementations
Smile Codecs
- 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.
- 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)
- 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
- Javascript
- smile-js Smile decoder written in Javascript (only decodes (reads), does not encode (write))
- Kotlin Multiplatform
- Python
- NewSmile Another Smile Format Decoder/Encoder for Python 3
- PySmile Python codec
- Rust
- serde-smile Serde serializer and deserializer written in Rust.
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.
Related Publications
Here are some external articles, blog posts, research papers that may be of interest: