diff --git a/README.rst b/README.rst index 342985ee6d9034f1cb213a150ad5b24ea32cd71b..ab995d8721bac5963455feac3251634bb08400cc 100644 --- a/README.rst +++ b/README.rst @@ -14,6 +14,60 @@ Table of Contents :local: :depth: 3 +============ +What's New +============ + +JSONLab v1.9 is the alpha release of the next milestone - code named "Magnus". +Notable changes are summarized below, key features marked by *: + +- 2019-05-06 [25ad795] unescape string in loadjson.m +- 2019-05-04 [2e317c9] explain extra compression fields +- 2019-05-02 [1b1be65] avoid side effect of removing singletarray +- 2019-05-02*[8360fd1] support zmat based base64 encoding and decoding +- 2019-05-01*[c797bb2] integrating zmat, for zlib/gzip data compression +- 2019-04-29 [70551fe] remove warnings from matlab +- 2019-04-28 [0d61c4b] complete data compression support, close #52 +- 2019-04-27 [804115b] avoid typecast error +- 2019-04-27 [c166aa7] change default compressarraysize to 100 +- 2019-04-27*[3322f6f] major new feature: support array compression and decompression +- 2019-03-13*[9c01046] support saving function handles, close #51 +- 2019-03-13 [a8fde38] add option to parse string array or convert to char, close #50 +- 2019-03-12 [ed2645e] treat string array as cell array in newer matlab +- 2018-11-18 [c3eb021] allow saving uint64 integers in saveubjson, fix #49 + +The biggest change in this release, compared to v1.8 released in July 2018, +is the support of data compression via the 'Compression' option for both +savejson and saveubjson. Two compression methods are currently supported - +"zlib" and "gzip". The compression interfaces, zlibencode/zlibdecode/gzipencode/ +gzipdecode are modified from the "Byte Encoding Utilities" by Kota Yamaguchi [1], +which has built-in support for java-based compression in MATLAB (when jvm is +enabled). To support Octave, as well as MATLAB in "nojvm" mode, a mex-based +data compression/encoding toolbox, ZMat [2], written by Qianqian Fang, takes priority +over the java-based utilities, if installed. For savejson, a 'base64' encoding is +applied to convert the compressed binary stream into a string; 'base64' encoding +is not used in saveubjson. The encoding and restoration of the binary matlab arrays +are automatically handled in save*json/load*json round-trip conversions. + +To save matlab data with compression, one simply append 'Compression', 'method' pair +in the savejson/saveubjson call. For example + +.. code:: matlab + + jsonstr=savejson('',mydata,'compression','zlib'); + data=loadjson(jsonstr); + +In addition, the below features are added to JSONLab + + * save function handles + * support saving "string" class in MATLAB + * fix two bugs in saveubjson + * unescape strings in loadjson + + +- [1] https://www.mathworks.com/matlabcentral/fileexchange/39526-byte-encoding-utilities +- [2] http://github.com/fangq/zmat + ============ Introduction ============ @@ -457,10 +511,12 @@ following command: or browsing the github site at -.. code:: shell - https://github.com/fangq/jsonlab +Please report any bugs or issues to the below URL: + + https://github.com/fangq/jsonlab/issues + Sometimes, you may find it is necessary to modify JSONLab to achieve your goals, or attempt to modify JSONLab functions to fix a bug that you have encountered. If you are happy with your changes and willing to share those @@ -480,6 +536,44 @@ the upstream code. We appreciate any suggestions and feedbacks from you. Please use the following mailing list to report any questions you may have regarding JSONLab: -`iso2mesh-users <https://groups.google.com/forum/#!forum/iso2mesh-users>`_ + https://github.com/fangq/jsonlab/issues (Subscription to the mailing list is needed in order to post messages). + + +========================== +Acknowledgement +========================== + +--------- +zlibdecode.m, zlibencode.m, gzipencode.m, gzipdecode.m, base64encode.m, base64decode.m +--------- + +* Author: Kota Yamaguchi +* URL: https://www.mathworks.com/matlabcentral/fileexchange/39526-byte-encoding-utilities +* License: BSD License, see below + +``` +Copyright (c) 2012, Kota Yamaguchi +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +``` \ No newline at end of file diff --git a/README.txt b/README.txt index 610acc7afd10a773b8378a95340a52aafd04b54b..2ccceefa112c40cb7d65d63b2fa06d283684cd0e 100644 --- a/README.txt +++ b/README.txt @@ -11,11 +11,65 @@ Table of Content: +0. What's New I. Introduction II. Installation III.Using JSONLab IV. Known Issues and TODOs V. Contribution and feedback +V. Acknowledgement + +------------------------------------------------------------------------------- + +0. What's New + +JSONLab v1.9 is the alpha release of the next milestone - code named "Magnus". +Notable changes are summarized below, key features marked by *: + + 2019-05-06 [25ad795] unescape string in loadjson.m + 2019-05-04 [2e317c9] explain extra compression fields + 2019-05-02 [1b1be65] avoid side effect of removing singletarray + 2019-05-02*[8360fd1] support zmat based base64 encoding and decoding + 2019-05-01*[c797bb2] integrating zmat, for zlib/gzip data compression + 2019-04-29 [70551fe] remove warnings from matlab + 2019-04-28 [0d61c4b] complete data compression support, close #52 + 2019-04-27 [804115b] avoid typecast error + 2019-04-27 [c166aa7] change default compressarraysize to 100 + 2019-04-27*[3322f6f] major new feature: support array compression and decompression + 2019-03-13*[9c01046] support saving function handles, close #51 + 2019-03-13 [a8fde38] add option to parse string array or convert to char, close #50 + 2019-03-12 [ed2645e] treat string array as cell array in newer matlab + 2018-11-18 [c3eb021] allow saving uint64 integers in saveubjson, fix #49 + +The biggest change in this release, compared to v1.8 released in July 2018, +is the support of data compression via the 'Compression' option for both +savejson and saveubjson. Two compression methods are currently supported - +"zlib" and "gzip". The compression interfaces, zlibencode/zlibdecode/gzipencode/ +gzipdecode are modified from the "Byte Encoding Utilities" by Kota Yamaguchi [1], +which has built-in support for java-based compression in MATLAB (when jvm is +enabled). To support Octave, as well as MATLAB in "nojvm" mode, a mex-based +data compression/encoding toolbox, ZMat [2], written by Qianqian Fang, takes priority +over the java-based utilities, if installed. For savejson, a 'base64' encoding is +applied to convert the compressed binary stream into a string; 'base64' encoding +is not used in saveubjson. The encoding and restoration of the binary matlab arrays +are automatically handled in save*json/load*json round-trip conversions. + +To save matlab data with compression, one simply append 'Compression', 'method' pair +in the savejson/saveubjson call. For example + + jsonstr=savejson('',mydata,'compression','zlib'); + data=loadjson(jsonstr); + +In addition, the below features are added to JSONLab + +* save function handles +* support saving "string" class in MATLAB +* fix two bugs in saveubjson +* unescape strings in loadjson + + +* [1] https://www.mathworks.com/matlabcentral/fileexchange/39526-byte-encoding-utilities +* [2] http://github.com/fangq/zmat ------------------------------------------------------------------------------- @@ -448,6 +502,10 @@ or browsing the github site at https://github.com/fangq/jsonlab +Please report any bugs or issues to the below URL: + + https://github.com/fangq/jsonlab/issues + Sometimes, you may find it is necessary to modify JSONLab to achieve your goals, or attempt to modify JSONLab functions to fix a bug that you have encountered. If you are happy with your changes and willing to share those @@ -467,6 +525,41 @@ the upstream code. We appreciate any suggestions and feedbacks from you. Please use the following mailing list to report any questions you may have regarding JSONLab: -https://groups.google.com/forum/?hl=en#!forum/iso2mesh-users + https://github.com/fangq/jsonlab/issues (Subscription to the mailing list is needed in order to post messages). + +------------------------------------------------------------------------------- + +V. Acknowledgement + +This toolbox contains modified functions from the below toolboxes: + +== zlibdecode.m, zlibencode.m, gzipencode.m, gzipdecode.m, base64encode.m, base64decode.m == + +* Author: Kota Yamaguchi +* URL:https://www.mathworks.com/matlabcentral/fileexchange/39526-byte-encoding-utilities +* License: BSD License, see below + +Copyright (c) 2012, Kota Yamaguchi +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.