Smile (format för datautbyte)
Filnamnstillägg |
.sml
|
---|---|
Internet mediatyp |
application/x-jackson-smile (föreslagen)
|
Magiskt nummer |
3a 29 ":)" |
Typ av format | Datautbyte |
Förlängt från | JSON |
Standard | ingen RFC än |
Hemsida |
Smile är ett datautbytesformat baserat på JSON . Det kan också betraktas som en binär serialisering av den generiska JSON-datamodellen, vilket innebär att verktyg som fungerar på JSON också kan användas med Smile , så länge som en korrekt kodare/avkodare finns för verktyget. Namnet kommer från de första 2 byten i 4 byte-huvudet, som består av Smiley ":)" följt av en radmatning: ett val som gjorts för att göra det lättare att känna igen Smile-kodade datafiler med hjälp av textuella kommandoradsverktyg.
Effektivitet
Jämfört med JSON är Smile både mer kompakt och effektivare att bearbeta (både att läsa och skriva). En del av detta beror på mer effektiv binär kodning (liknande BSON , CBOR och UBJSON ), men en extra funktion är valfri användning av bakåtreferenser för egenskapsnamn och värden. Bakåtreferenser tillåter ersättning av egenskapsnamn och/eller korta (64 byte eller mindre) strängvärden med 1- eller 2-byte referens-ID.
Genomföranden
Bibliotek som är kända för att stödja Smile inkluderar:
- Cheshire (Clojure) är ett datakodningsbibliotek som stöder Smile som binärt alternativ till JSON
- Jackson (Java) med binär dataformatmodul som stöder Smile, Avro , CBOR , Ion och Protocol Buffers
- libsmile (C/C++; omslag för Ruby, Perl)
- go-smile för att avkoda Smile-data i Golang
- Protostuff (Java) stöder flera dataformat för serialisering, inklusive Smile, JSON , XML och Protocol Buffers .
- PySmile för kodning/avkodning av Smile-data i Python
- NewSmile för kodning/avkodning av Smile-data i Python >= 3.7
- smile-js för avkodning av Smile-data från Javascript