Loading article…
| ファイル名拡張子 |
.sml |
|---|---|
| インターネットメディアの種類 |
application/x-jackson-smile (提案) |
| 魔法の数字 | 3a 29「:)」 |
| フォーマットの種類 | データ交換 |
| 延長 | 翻訳 |
| 標準 | RFCはまだありません |
| Webサイト | github.com/FasterXML/smile-format-specation |
Smile は、 JSONに基づくコンピュータデータ交換形式です。また、汎用 JSON データ モデルのバイナリ シリアル化とも考えられます。つまり、ツールに適切なエンコーダ/デコーダが存在する限り、 JSON で動作するツールをSmileでも使用できます。名前は、4 バイト ヘッダーの最初の 2 バイトに由来しており、 Smiley ":)" とそれに続く改行で構成されています。これは、テキスト コマンドライン ツールを使用して Smile でエンコードされたデータ ファイルを認識しやすくするための選択です。
効率
JSONと比較すると、Smileはよりコンパクトで、処理効率も優れています(読み取りと書き込みの両方)。[1] これは、バイナリエンコーディングの効率化(BSON、CBOR、UBJSONと同様)によるところが大きいですが、プロパティ名と値の後方参照をオプションで使用できるという追加機能もあります。 [2] 後方参照により、プロパティ名や短い(64バイト以下)文字列値を1バイトまたは2バイトの参照IDに置き換えることができます。
実装
Smile をサポートしていることがわかっているライブラリは次のとおりです。
- Cheshire (Clojure) は、 JSONのバイナリ代替として Smile をサポートするデータ エンコーディング ライブラリです。
- Jackson (Java) と、Smile、 Avro、CBOR、Ion、プロトコル バッファーをサポートするバイナリ データ形式モジュール
- libsmile (C/C++; Ruby、Perl のラッパー)
- Golang で Smile データをデコードするための go-smile
- Protostuff (Java) は、Smile、JSON、XML、Protocol Buffersなど、シリアル化のための複数のデータ形式をサポートしています。
- PythonでSmileデータをエンコード/デコードするためのPySmile
- Python >= 3.7 で Smile データをエンコード/デコードするための NewSmile
- JavaScript から Smile データをデコードするための smile-js
使用法
- ElasticsearchはAPIでSmileをサポートしています[3]
参照
参考文献
- ^ 「JVM シリアライザー ベンチマーク (結果)」。GitHub。2014年6 月 7 日閲覧。
- ^ 「Smile の共有文字列参照」 。2014年6 月 7 日閲覧。
- ^ 「Elasticsearch ガイド [8.16]」。Elastic . 2024-03-22 . 2024-11-22閲覧。
外部リンク
- スマイルフォーマット仕様
