Uśmiech (format wymiany danych)
Rozszerzenie nazwy pliku |
.sml
|
---|---|
Rodzaj mediów internetowych |
aplikacja/x-jackson-smile (propozycja)
|
magiczny numer |
3a 29 ":)" |
Typ formatu | Wymiana danych |
Przedłużony od | JSON |
Standard | jeszcze nie RFC |
Strona internetowa |
Smile to format wymiany danych komputerowych oparty na JSON . Można to również uznać za binarną serializację ogólnego modelu danych JSON, co oznacza, że narzędzia działające na JSON mogą być również używane z Smile , o ile istnieje odpowiedni koder/dekoder dla narzędzia. Nazwa pochodzi od pierwszych 2 bajtów 4-bajtowego nagłówka, które składają się z Smiley „:)”, po którym następuje wysunięcie wiersza: wybór dokonany w celu ułatwienia rozpoznawania plików danych zakodowanych w Smile za pomocą tekstowych narzędzi wiersza poleceń.
Efektywność
W porównaniu z JSON, Smile jest zarówno bardziej kompaktowy, jak i wydajniejszy w przetwarzaniu (zarówno do odczytu, jak i zapisu). Częściowo wynika to z wydajniejszego kodowania binarnego (podobnego do BSON , CBOR i UBJSON ), ale dodatkową funkcją jest opcjonalne użycie odniesień wstecznych dla nazw właściwości i wartości. Odwołania zwrotne umożliwiają zastąpienie nazw właściwości i/lub krótkich (64 bajtów lub mniej) wartości łańcuchowych 1- lub 2-bajtowymi identyfikatorami referencyjnymi.
Implementacje
Biblioteki, o których wiadomo, że obsługują Smile, obejmują:
- Cheshire (Clojure) to biblioteka do kodowania danych, która obsługuje Smile jako binarną alternatywę dla JSON
- Jackson (Java) z modułem binarnego formatu danych obsługującym bufory Smile, Avro , CBOR , Ion i Protocol
- libsmile (C/C++; opakowania dla Ruby, Perl)
- go-smile do dekodowania danych Smile w Golang
- Protostuff (Java) obsługuje wiele formatów danych do serializacji, w tym Smile, JSON , XML i Protocol Buffers .
- PySmile do kodowania/dekodowania danych Smile w Pythonie
- NewSmile do kodowania/dekodowania danych Smile w Pythonie >= 3.7
- smile-js do dekodowania danych Smile z JavaScript