json-schema-spec icon indicating copy to clipboard operation
json-schema-spec copied to clipboard

Investigate EXI for JSON compatability

Open awwright opened this issue 8 years ago • 3 comments

EXI for JSON https://www.w3.org/TR/exi-for-json/ is a method of compressing JSON into a compact binary form, using the algorithm defined by EXI (originally defined for XML).

For draft-5, we need not add define any specific compatibility features, but do consider the ways it might be used.

awwright avatar Mar 18 '16 10:03 awwright

Update news: a new Editor's Draft of the EXI4JSON document is now available at https://www.w3.org/TR/2016/WD-exi-for-json-20160823

Comments about this document are welcome on the [email protected] mailing list Archive: https://lists.w3.org/Archives/Public/public-exi

Announcement by Daniel Peintner:

https://lists.w3.org/Archives/Public/public-exi/2016Aug/0004.html

All, The second public working draft of "EXI for JSON (EXI4JSON)" has been published [1a]. Compared to the previous publication the EXI4JSON structure has been changed for JSON keys (see [1b]).

EXI4JSON allows one to convert JSON documents in an efficient representation by means of EXI. Lossless round-trip conversion back to the original JSON structures is supported too.

For people that would like to experiment there are already some implementations available in Java [2, 3], JavaScript [4] and C [5]. The recent publication updates are already implemented in [2, 3] and a Graphical User Interface as runnable JAR is provided at http://exificient.github.io/java/exificient-gui-jar-with-dependencies.jar.

-- Daniel

[1a] https://www.w3.org/TR/2016/WD-exi-for-json-20160823/ [1b] https://www.w3.org/TR/2016/WD-exi-for-json-20160823/#decisionStructureChange [2] https://github.com/EXIficient/exificient-for-json, Java library [3] https://github.com/EXIficient/exificient-gui, Java GUI [4] http://exificient.github.io/javascript/demo/processJSON.html, JavaScript Demo [5] https://github.com/EXIficient/exificient-for-json.c, C implementation

brutzman avatar Aug 30 '16 15:08 brutzman

Nice! This is still a very theoretical idea, but thanks for the notice @brutzman

awwright avatar Aug 30 '16 16:08 awwright

Weird shower thought: There's only one thing (afaict) that prevents you from building an ABNF out of a JSON Schema, and that is the fact that properties may appear in any order. If we could figure out a way to enforce a property order, then we could generate an ABNF, and/or a more efficient EXI representation.

awwright avatar Mar 03 '20 10:03 awwright