Open main menu


→‎Infrastructure: New project "JSON encoding/decoding"
== Infrastructure ==
=== JSON encoding/decoding ===
[ JavaScript Object Notation], in short JSON, is a very common human readable and structured data format. Unfortunately, GNU Octave still lacks of builtin support of that data format. Having JSON support, Octave can improve for example it's web service functions, which often exchange JSON data these days.
In bug {{bug|53100}} a vivid discussion about proper JSON support took place. As JSON is a highly demanded feature for Octave, there are already several attempts to fill the gap:
* [ jsonlab] (M-file implementation, probably slow for large JSON files)
* [ JSONio] (C MEX wrapper around [ jsmn])
* [ octave-rapidjson] (C++ Octave wrapper around [ rapidjson])
* [ octave-jsonstuff] (C++ Octave wrapper around [ jsoncpp])
For different reasons, none of them can be directly merged into Octave core yet. Thus there is still lots of work to do. The goal of this project is to evaluate (and to cherry pick from) the implementations above, to create Matlab compatible [ jsonencode] and [ jsondecode] functions. This involves proper documentation of the work and unit tests to ensure the correctness of the implementation.
* '''Minimum requirements'''
: Ability to read and write Octave code, experience with Octave packages, and understanding of the basics of autotools. The most important skill is software design.
* '''Difficulty'''
: Medium.
* '''Mentor'''
: [[User:Siko1056|Kai]]
=== Jupyter Integration ===