WARNING: All the code in here is currently in the alpha stage. (Pre-beta, that is.) Do not use it in any production or business code! Seriously!! |
---|
JSON encoding/decoding functionality for GNU Octave.
JsonStuff attempts to provide a set of Matlab-compatible JSON encoding and decoding functions, namely jsonencode
and jsondecode
.
JsonStuff is currently implemented as an Octave package for the pkg
tool. The goal for JsonStuff is to be eventually merged into core Octave. After that happens, JsonStuff will continue to be maintained as a separate package to provide support for the Octave 4.x and 5.x release lines, at least until the Octave GUI for 5.x+ is fixed for macOS.
In summer 2020, core Octave implemented jsondecode and jsonencode, and these will be coming out in Octave 7.x. So JsonStuff is soon to be a legacy package, useful only for older versions of Octave. At that point I'm going to put it in "basic maintenance only" mode and stop development on it in favor of contributing to the core Octave implementations.
To get started using or testing this project, install it using Octave's pkg
function:
pkg install https://github.com/apjanke/octave-jsonstuff/releases/download/v0.3.3/jsonstuff-0.3.3.tar.gz
pkg load jsonstuff
- Clone the repo.
git clone https://github.com/apjanke/octave-jsonstuff
- Run
make dist
in a shell. - Install the resulting
target/jsonstuff-X.Y.Z.tar.gz
package file by runningpkg install /path/to/repo/octave-jsonstuff/target/jsonstuff-X.Y.Z.tar.gz
in Octave. - Lather, rinse, and repeat each time you make changes to any of the source code.
- Octave 4.4 or newer
JsonStuff runs on Octave 4.4.1 and later. It would be nice to have it work on Octave 4.0.0 and later (since Ubuntu 16 Xenial has Octave 4.0 and Ubuntu 18 Bionic has Octave 4.2); maybe we'll do that some day.
JsonStuff works on macOS, Linux, and Windows. (Though our CI is not running on Windows yet.)
The user documentation is in the doc/
directory. See doc/jsonstuff.html
or doc/html/index.html
for
the manual.
There's a FAQ in doc-project/
.
The developer documentation (for people hacking on JsonStuff itself) is in doc-project/
. Also see
CONTRIBUTING if you would like to contribute to this project.
Anything in a namespace with internal
in its name is for the internal use of this package, and is not intended for use by user code. Don't use those! Resist the urge! If you really have a use case for them, post an Issue and we'll see about making some public API for them.
JsonStuff is Free Software.
The JsonStuff code itself is licensed under the GNU GPLv3.
JsonStuff includes a redistribution of the RapidJSON library as source code, which is licensed under the MIT License.
JsonStuff is created by Andrew Janke.
Support is available on a best-effort basis via the JsonStuff GitHub repo. If you have a problem with JsonStuff, post an issue on the Issue Tracker there.
The project's author also hangs out in the #octave
channel on freenode IRC and the Octave Maintainers mailing list. You can ask questions there.