Elixir
dextrin
Die Referenzimplementierung von DXN (Data eXchange Notation) für Elixir: .dxn-Text, .dxnb-Binär, .dxns-Schema.
Absicht
JSON ist menschenlesbar, verliert aber Präzision; Protobuf ist kompakt und typisiert, braucht aber einen Compiler-Schritt und liest sich für niemanden. DXNs Grundidee: Text- und Binärdokument sollen denselben Werteraum beschreiben — 30 Typen, präzise genug für Geldbeträge und exakte Brüche, mit Structs und eigenen Tags als Erweiterungspunkten erster Klasse.
Beispiel
{:ok, value} = Dextrin.decode(~s(%{x: 1, y: 2}))
#=> {:ok, %{x: 1, y: 2}}
{:ok, bytes} = Dextrin.encode_binary(value)
Dextrin.decode_binary(bytes)
#=> {:ok, %{x: 1, y: 2}}Installation
{:dextrin, "~> 0.1.0"}