Skip to content

Investigate EXI for JSON compatability #13

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
awwright opened this issue Mar 18, 2016 · 3 comments
Open

Investigate EXI for JSON compatability #13

awwright opened this issue Mar 18, 2016 · 3 comments

Comments

@awwright
Copy link
Member

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.

@brutzman
Copy link

brutzman commented Aug 30, 2016

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

@awwright
Copy link
Member Author

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

@awwright
Copy link
Member Author

awwright commented Mar 3, 2020

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants