Changelogs » Msgpack

Msgpack

3.2.1

* Fix snprintf return value checking (821)
* Remove some warnings (819)
* Fix fbuffer result checking (812)
* Fix temporary object handling (807)
* Improve cmake support (804)
* Fix invalid `int main` parameter (800)
* Improve supporting platform (797, 817)
* Fix ZLIB error handling (795)
* Remove unused variable (793)
* Improve integer overflow checking (792)

3.2.0

* Fix invalid include (783)
* Add timespec support (781)
* Fix unchecked fnprintf on C (780)
* Improve integer overflow checking on C (776)
* Fix warnings on `-Wconversion` (770, 777, 784)
* Fix invalid passed by value on aligned_zone_size_visitor (764)
* Improve windows support (757, 779)
* Fix msgpack::object size caluclation error (754)
* Fix memory error on example code (753)
* Fix redundant memory allocation on C (747)
* Fix msgpack::type::tuple base class conversion (743)

3.1.1

* Add force endian set functionality (736)
* Fix vrefbuffer memory management problem (733)
* Fix msvc specific problem (731, 732)
* Update boost from 1.61.0 to 1.68.0 (730)
* Fix msgpack_timestamp type mismatch bug (726)

3.1.0

* Improve documents (687, 718)
* Add fuzzer support (689)
* Fix msgpack::object union member access bug (694)
* Improve cross platform configuration (704)
* Fix out of range dereference bug of EXT (705)
* Add timestamp support. std::chrono::system_clock::time_point is mapped to TIMESTAMP (706)
* Add minimal timestamp support for C. The type `msgpack_timestamp` and the function `msgpack_object_to_timestamp()` are introduced (707)
* Improve MSGPACK_DEFINE family name confliction probability (710)
* Add no static-library build option (BUILD_SHARED_LIBS=ON) (713, 717, 722)
* Add header only cmake target (721)
* Add `std::byte` adaptor (719)
* Remove some warnings (720)

3.0.1

* Add fuzz directory to release tar ball (686)
* Add include file checking for X-Code (683)

3.0.0

<< breaking changes >>

* Change offset parameter updating rule. If parse error happens, offset is updated to the error position. (639, 666)

<< other updates >>

* Improve cross platform configuration (655, 677)
* Improve build system (647)
* Improve user class adaptor (645, 673)
* Improve msgpack::object visitation logic (676)
* Remove some warnings (641, 659)
* Add `->` and `*` operators to object_handle (635)
* Improve CI environment (631, 634, 643, 657, 662, 668)
* Improve documents (630, 661)
* Refactoring (670)
* Add OSS-Fuzz support (672, 674, 675, 678)

2.1.5

* Improve cross platform configuration (624)
* Add boost asio examples (including zlib) (610)
* Remove some warnings (611)
* Fix unpack visitor to treat float32/64 correctly (613)
* Improve documents (616)
* Fix alignment problem on some platform (617, 518)
* Fix conflict std::tuple, std::pair, and boost::fusion::sequence problem (619)

2017-08-03 version 2.1.4 (Invalid)
* See https://github.com/msgpack/msgpack-c/issues/623

2.1.3

* Improve build system (603)
* Add C++17 adaptors `std::optional` and `std::string_view`. (607, 608)
* Improve cross platform configuration (601)
* Remove some warnings (599, 602, 605)

2.1.2

* Improve documents (565)
* Fix empty map parse bug (568)
* Improve build system (569, 570, 572, 579, 591, 592)
* Remove some warnings (574, 578, 586, 588)
* Improve cross platform configuration (577, 582)
* Add cmake package config support (580)
* Fix streaming unpack bug (585)

2.1.1

* Fix unpacker's buffer management bug (561)
* Add boost string_view adaptor (558)
* Remove some warnings (557, 559)
* Improve coding style (556)

2.1.0

<< breaking changes >>

* Fix object internal data type is float if msgpack format is float32 (531)

<< recommended changes >>

* Add `FLOAT64` type. Please use it instead of `DOUBLE` (531)
* Add `FLOAT32` type. Please use it instead of `FLOAT` (531)

<< other updates >>

* Add iterator based parse/unpack function(experimental) (553)
* Add `[[deprecated]]` attribute for C++14 (552)
* Fix `msgpack_unpack()` return code (548)
* Fix integer overflow (547, 549, 550)
* Add example codes (542)
* Add MSGPACK_NVP. You can use not only variable name but also any strings (535)
* Fix and Improve build system (532, 545)
* Fix `gcc_atomic.hpp` include path (529, 530)
* Improve CI environment (526)
* Improve documents (524)
* Add msgpack_unpacker_next_with_size() function (515)
* Fix `as()` applying condition (511)
* Fix fbuffer write (504)
* Add gcc bug workaround (499)
* Improve object print (497, 500, 505, 533)
* Remove some warnings (495, 506, 508, 513, 528, 538, 545)

2.0.0

<< breaking changes >>

* Removed autotools support. Use cmake instead (476, 479)
* Removed pointer version of msgpack::unpack APIs. Use reference version instead (453)
* Removed MSGPACK_DISABLE_LEGACY_CONVERT. msgpack::object::convert(T*) is removed by default. Use msgpack::object::convert(T&) instead (451)
* Removed msgpacl::type::nil. Use nil_t or define MSGPACK_USE_LECACY_NIL (444)
* Removed std::string to msgpack::object conversion (434)

<< recommended changes >>

* Replaced msgpack::unpacked with msgpack::object_handle. msgpack::unpacked is kept as a typedef of msgpack::object_handle. (448)

<< other updates >>

* Add strict size checking adaptor. Relaxed tuple conversion (489)
* Fix and Improve example codes (487)
* Add C++/CLI support for nullptr (481)
* Update the boost libraries that are contained by msgpack-c (475)
* Fix gcc_atomic.hpp location (474)
* Add C-Style array support (466, 488)
* Fix include file dependency (464)
* Add a visitor version of unpack API (461)
* Fix JSON string conversion from "nil" to "null" (458)
* Fix and Improve build system (455, 471, 473, 486, 491)
* Fix comments (452)
* Fix unintentional msgpack::zone moving problem (447)
* Fix operator>> and << for msgpack::object (443)
* Fix C++03 msgpack::zone::clear() memory access violation bug (441)
* Fix TARGET_OS_IPHONE checking (436)
* Fix invalid front() call for empty container (435)
* Fix compile error on g++6 (C++11 only) (426, 430)
* Fix zone size expansion logic (423)
* Fix wrong hader file dependency (421)
* Fix msvc specific problem (420)
* Add v2 API support (415)

1.9.3

https://github.com/msgpack/msgpack-javascript/compare/v1.9.2...v1.9.3

* Fix a possible crash in decoding long strings (amending 88): [90](https://github.com/msgpack/msgpack-javascript/pull/90) by chrisnojima

1.9.2

https://github.com/msgpack/msgpack-javascript/compare/v1.9.1...v1.9.2

* Fix a possible crash in decoding long strings: [88](https://github.com/msgpack/msgpack-javascript/pull/88) by chrisnojima

1.9.1

https://github.com/msgpack/msgpack-javascript/compare/v1.9.0...v1.9.1

* No code changes from 1.9.0
* Upgrade dev dependencies

1.9.0

https://github.com/msgpack/msgpack-javascript/compare/v1.8.0...v1.9.0

* [Make cachedKeyDecoder configurable by sergeyzenchenko · Pull Request \85](https://github.com/msgpack/msgpack-javascript/pull/85)
* [Add support for numbers as map keys by sergeyzenchenko · Pull Request \84](https://github.com/msgpack/msgpack-javascript/pull/84)
* Build with TypeScript 3.6

1.8.0

https://github.com/msgpack/msgpack-javascript/compare/v1.7.0...v1.8.0

* Adjust internal cache size according to benchmark results [bc5e681](https://github.com/msgpack/msgpack-javascript/commit/bc5e681e781881ed27efaf97ba4156b484dc7648)
* Internal refactoring [82](https://github.com/msgpack/msgpack-javascript7/pull/82)

1.7.0

https://github.com/msgpack/msgpack-javascript/compare/v1.6.0...v1.7.0

* Introduce cache for map keys, which improves decoding in 1.5x faster for the benchmark (sergeyzenchenko) [54](https://github.com/msgpack/msgpack-javascript/pull/54)
*

1.6.0

https://github.com/msgpack/msgpack-javascript/compare/v1.5.0...v1.6.0

* Add `EncodeOptions.forceFloat32` to encode non-integer numbers in float32 (default to float64) [79](https://github.com/msgpack/msgpack-javascript/pull/79)

1.5.0

https://github.com/msgpack/msgpack-javascript/compare/v1.4.6...v1.5.0

* Improve `decode()` to handle `ArrayBuffer` [78](https://github.com/msgpack/msgpack-javascript/pull/78)

1.4.6

https://github.com/msgpack/msgpack-javascript/compare/v1.4.5...v1.4.6

* use `TextEncoder` to encode string in UTF-8 for performance [68](https://github.com/msgpack/msgpack-javascript/pull/68)

1.4.5

https://github.com/msgpack/msgpack-javascript/compare/v1.4.4...v1.4.5

* Fix an encoding result of -128 from int16 to int8 [73](https://github.com/msgpack/msgpack-javascript/pull/73)

1.4.4

https://github.com/msgpack/msgpack-javascript/compare/v1.4.1...v1.4.4

* Fix the UMD build setting to correctly setup `MessagePack` module in the global object

1.4.3

Mispackaged.

1.4.1

https://github.com/msgpack/msgpack-javascript/compare/v1.4.0...v1.4.1

* Improved entrypoints for browsers:
* Build as UMD
* Minidifed by default

1.4.0

<< recommended changes >>

* Define [MSGPACK_DISABLE_LEGACY_NIL](https://github.com/msgpack/msgpack-c/wiki/v1_1_cpp_configuremsgpack_disable_legacy_nil-since-140), then `msgpack::type::nil` is replaced by with `msgpack::type::nil_t` (408, 411, 412).
Replace `msgpack::type::nil` with `msgpack::type::nil_t` in client codes.
`msgpack::type::nil` will be removed on the version 2.0.0.
* Define [MSGPACK_DISABLE_LEGACY_CONVERT](https://github.com/msgpack/msgpack-c/wiki/v1_1_cpp_configuremsgpack_disable_legacy_convert-since-140), then `msgpack::object::convert(T*)` is removed (410).
Replace calling `msgpack::bojectconvert(T*)` with `msgpack::bojectconvert(T&)` in client codes as follows:

C++
int i;
obj.convert(&i); // before


C++
int i;
obj.convert(i);  // after


`msgpack::object::convert(T*)` will be removed on the version 2.0.0.

Define the macros above as follows when you compile C++ codes that use msgpack-c:


g++ -Ipath_to_msgpack/include -DMSGPACK_DISABLE_LEGACY_NIL -DMSGPACK_DISABLE_LEGACY_CONVERT your_code.cpp



You can compile existing codes without defining macros above but I recommend defining them and updating your codes to fix the issues 408, 411, 412, 399, and 410. It is also a good preparation for the version 2.0.0.

<< other updates >>

* Improve documents (387, 407)
* Remove C++ version library (394, 402)
* Add Doxyfile and ChangeLog to the distribution package (397)
* Add signed/unsigned char test to travis-ci (398)
* Remove some warnings (400, 401, 409)
* Fix endian checking. (404)

1.3.2

https://github.com/msgpack/msgpack-javascript/compare/v1.3.1...v1.3.2

* Fix typings for older TypeScript [55](https://github.com/msgpack/msgpack-javascript/pull/55)

1.3.1

https://github.com/msgpack/msgpack-javascript/compare/v1.3.0...v1.3.1

* Fix missing exports of `decodeStream()`

1.3.0

* Change the license from the Apache License Version 2.0 to the
Boost Software License, Version 1.0.(386)
* Remove some warnings (365)
* Add std::reference_wrapper support(373, 384)
* Improve tests (375, 378, 379, 380)
* Fix msvc specific problem (376, 383)
* Fix typos (381)

1.2.10

* Optimze MessagePack.unpack not to copy source string

1.2.9

* Hotfix release only for JRuby: 1.2.8-java was built incorrectly

1.2.8

* Fix a regression that MessagePackunpack raises error if IO is assigned as the (only) argument
* Improve compatibility that MessagePackpack returns nil if IO is assigned as 2nd argument

1.2.7

* Add Packerwrite_bin and Packerwrite_bin_header methods

1.2.6

* Update Ruby version 2.6 dependency (especially for Windows environment)

1.2.4


      

1.2.3

https://github.com/msgpack/msgpack-javascript/compare/v1.2.2...v1.2.3

* More optimizations for string decoding performance

1.2.2

https://github.com/msgpack/msgpack-javascript/compare/v1.2.1...v1.2.2

* Improved array decoding performance ([32](https://github.com/msgpack/msgpack-javascript/pull/32) by sergeyzenchenko)
* Improved string decoding performance with TextDecoder ([34](https://github.com/msgpack/msgpack-javascript/pull/34) by sergeyzenchenko)

1.2.1

https://github.com/msgpack/msgpack-javascript/compare/v1.2.0...v1.2.1

* Reduced object allocations in `encode()`

1.2.0

<< breaking changes >>

* Change std::vector<unsigned char> and std::array<unsigned char>
mapped to BIN instead of ARRAY (243)
* Remove redundant copy (285)


<< other updates >>

* Add array_ref to map to ARRAY (243)
* Add variant type and adaptor (349)
* Add object::convert_if_not_nil() (357)
* Fix invalid offset update (354)
* Add C++11 support on MSVC2015(339, 347)
* Fix and Improve build system (346, 350, 361, 363)
* Import Boost.Preprocessor as a part of msgpack-c (312)
* Fix OSX with libc++ specific errors (334, 362)
* Add customized containers support (330)
* Add std::unique_ptr and std::shared_ptr support (329)
* Add missing install files (328)
* Add shared/static library switching option (316)
* Improve no throw description on C++11 (313)
* Import Boost.Predef as a part of msgpack-c (312)
* Add map based serialize support (306)
* Add Boost.Fusion support (305)
* Add v4 format RAW support (304)
* Fix zbuffer with empty string problem (303)
* Add non default constructible class support (302, 324, 327, 331, 332, 345)
* Add inline keyword to function (template) (299)
* Add EXT type supporting classes (292, 308)
* Fix raw_ref != comparison (290)
* Add object deep copy (288)
* Remove some warnings (284, 322, 323, 335)
* Improve compiler version checking (283)
* Add return value to object::convert() (282)
* Improve move semantic support in C++11 (279, 353)
* Add Boost.StringRef support (278)
* Improve CI environment (276, 294, 338)
* Add converting to JSON (274, 301)
* Fix iOS specific problem (270)
* Improve doxtgen document generation (269)
* Add Boost.Optional support (268)
* Fix msvc specific problem (267, 295)
* Add base class serialization. (265, 277)
* Add and improve examples. (264, 310, 311, 341, 342, 344)
* Fix wiki URL. (263)

1.1

BUG FIXES
* Fix conversion from DateTime[Offset] to Timestamp failure for before Unix epoc. 296 (port from 1.0.x branch)

NEW FEATURE
* Allow programatically ignoring arbitary members via BindingOptions. Thank you ShrenikOne 282
* To prevent accidental Timestamp serialization in existing code, SerializationContext.ConfigureClassic(SerializationCompatibilityLevel) and SerializationContext.CreateClassicContext(SerializationCompatibilityLevel) are added. 296

1.1.0

<< breaking changes >>

* Remove msgpack_fwd.hpp
* Improve user types adaptation mechanism (262)
Since version 1.0.0, users need to obey the correct include order.
However, it is very difficult to maintain the correct order in big
projects. version 1.1.0 removed this order. Users don't need to
care about include order. Migration guide from 1.0.x to 1.1.0 has
been written. See https://github.com/msgpack/msgpack-c/wiki


<< other updates >>

* Fix vector<bool> size check (251)
* Fix inttypes.h inclusion on MSVC (257)
* Support documents generation by Doxygen (259)
* Remove C99 style variable declaration (253)
* Improve documents (https://github.com/msgpack/msgpack-c/wiki)

1.0.3

* Support Ruby 2.4

1.0.2

=============================================================

API Breaking Changes

* None.

Enhancements

* None.

Bugfixes

* Fixed exception *Maximum call stack size exceeded* thrown in some cases.

1.0.1

BUG FIXES
* Fix conversion from DateTime[Offset] to Timestamp failure for before Unix epoc. 296

1.0

==========

Initial release.


* Version 2.5.2 - 08/15/2019
* Fix DeprecationWarning about using ABCs from 'collections' on Python 3.7.
* Contributors
* Gabe Appleton, gappleto97 - 5ece62a

* Version 2.5.1 - 03/03/2019
* Fix handling of naive/aware datetime objects when packing the timestamp extension type.
* Add handling for short reads during file object unpacking.
* Make Ext base class a new-style object for cleaner inheritance in Python 2.
* Improve length comparisons and instance checks for minor performance improvement.
* Contributors
* Gabe Appleton, gappleto97 - 28907ba, 76751f3, 7a9b717
* DisposaBoy, DisposaBoy - 50b1dd3

* Version 2.5.0 - 03/31/2018
* Add support for the timestamp extension type.
* Fix tests on big endian platforms
* Contributors
* Sergei Trofimovich, trofi - 16510e9

* Version 2.4.1 - 04/25/2017
* Fix module version tuple inconsistency.

* Version 2.4.0 - 04/20/2017
* Add hash special method to Ext class.
* Add packing option to force floating point precision.
* Make codebase PEP 8 compliant.
* Add support for tox automated testing and use it in CI.
* Contributors
* Fabien Fleutot, fab13n - 4c461ed, bdeee20
* Yuhang (Steven) Wang, yuhangwang - 5f53bcf
* Pedro Rodrigues, medecau - 2f7b667, 456032c, e60bc5e

* Version 2.3.0 - 10/19/2016
* Add `ext_handlers` option to packing and unpacking functions to support application-defined Ext packing and unpacking hooks.
* Add `allow_invalid_utf8` option to unpacking functions to allow unpacking of invalid UTF-8 strings.
* Add hexadecimal prefix to data bytes in string representation of Ext objects.
* Change version number to semantic versioning.

* Version 2.2 - 09/25/2016
* Add `use_ordered_dict` option to unpacking functions for unpacking MessagePack maps into the `collections.OrderedDict` type.
* Add support for `bytearray` type to `unpackb`/`loads` functions.
* Fix intermittent unit test failures due to non-deterministic packing of dict test vectors.
* Fix several docstring examples and typos.
* Add license and unit test to source distribution packaging.
* Contributors
* Fairiz 'Fi' Azizi - df59af6
* INADA Naoki - 23dbf70
* Jack O'Connor - 7aa0d19

* Version 2.1 - 05/09/2015
* Improve array and map unpacking performance under Python 2.
* Add module `__version__` attribute.

* Version 2.0 - 09/29/2014
* Add streaming serialization and deserialization with `pack`/`dump` and `unpack`/`load`, respectively, for file-like objects.

* Version 1.8 - 09/17/2014
* Add support for unpacking maps with array container keys. Thanks to ralphjzhang for the report and suggestion (https://github.com/vsergeev/u-msgpack-python/issues/10).

* Version 1.6 - 01/17/2014
* Fix wide character unicode string serialization. Thanks to cforger for the bug report and fix (https://github.com/vsergeev/u-msgpack-python/issues/8).
* Add module docstrings.
* Add module `version` tuple.
* Add Python standard library style `dumps` and `loads` serialization/deserialization aliases.
* Rename unpack exceptions `KeyNotPrimitiveException` -> `UnhashableKeyException` and `KeyDuplicateException` -> `DuplicateKeyException`. Add aliases for backwards compatibility.

* Version 1.5 - 12/09/2013
* Hide internal helper functions from module's exported names.
* Make unit tests more portable among interpreters (CPython, PyPy).
* Update documentation for PyPy support.

* Version 1.4 - 11/21/2013
* Add type checking to Ext class initialization.
* Add support for Python 2.6.

* Version 1.2 - 10/19/2013
* Add compatibility mode to support old specification "raw" bytes msgpack type.

* Version 1.0 - 09/29/2013
* Initial release.
* Contributors
* Eugene Ma - 496aaa5


Change Log

All notable changes this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/) and [Keep a CHANGELOG](http://keepachangelog.com/).

[unreleased] - unreleased

Fixed


Added


Changed

1.0.0

BUG FIXES
* [NonSerialized] attribute does not effect in Mono based platform including Unity.
* Fix map keys order emitted by asymmetric (serialization only) serializer are inconsistent across platform.
* Fix Unity build does not honor serialization related attributes correctly.
* Fix internal inconsitency between serialization related attributes detection and their parameter retrieval.

1.0.0rc1

BUG FIXES
* Fix NRE in .NET Standard 1.1/1.3 build (this issue got mixed in beta2).
* Fix built-in Guid/BigInteger always output raw type even if PackerCompatibilityOptions.PackBinaryAsRaw is not specified. 270
* Fix MessagePackObject.UnderlyingType reports wrong type for ext types. Part of 269.
This bug also caused misleading error message for incompatible type conversion.
* Fix exceptions thrown by MessagePackObject.AsBinary()/AsString() reports internal type name. Part of 269.

1.0.0beta1

NEW FEATURES
* .NET Standard 2.0 which supports serializer source code generation on .NET Core. Note that serializer assembly generation is not supported.
* MessagePackSerializer.UnpackMessagePackObject(byte[]) utility method.
* MessagePack timestamp type support. This includes interoperability with DateTime/DateTimeOffset as well as MsgPack.Timespan type with basic arithmatics, properties, and conversions.

BUG FIXES
* Fix ByteArrayPacker throws IndexOutOfBoundException when the buffer remaining bytes is equal to packed scalar size. 252
* Fix UAP build drop does not exists in nupkg. 186
* Fix new unpacker cannot unpack reserved ext types.

Relase 1.0.0-beta2 2017-10-29

CHANGES
* Xamarin builds are now integrated to .NET Standard 2.0.

NEW FEATURES
* ValueTuple support. 277

IMPROVEMENTS
* System.Tuple<T> detection now ignores their declaring assemblies.
* Improve exception message in AOT error of Unity.
* .NET Standard 1.1/1.3 projects now do not depend on System.Linq.Expressions package.

0.16.1

* Use unions int type as token int representation instead of Int64

0.16.0

* Update to Crystal 0.31, fixed Arithmetic overflows

0.15.0

* Added ArraySerializable module
* Added Serializable::Presence module
* fix byte_number in errors in some cases

0.14.2

* Add support for type extension, fixed 44

0.13.1

* **(breaking change)** Rewrite Unpacker logic, changed Token, Lexer and Unpacker
* **(breaking change)** Remove unpacker methods: from_msgpack64, to_msgpack64
* **(breaking change)** Remove Eof token (raises EofError instead)
* **(breaking change)** Rename unpacker method read_value_tokens to read_node
* **(breaking change)** Rename TokensUnpacker to NodeUnpacker
* **(breaking change)** Rename UnpackException to UnpackError
* **(breaking change)** MessagePack::Type have only one type Int64 for ints, and Float64 for floats
* Add more exception types for every case

0.12.1

* **(breaking change)** Rename MessagePack::Unpacker to MessagePack::IOUnpacker
* Add MessagePack::TokensUnpacker
* Add unpacker method read_value_tokens, to read value as tokens array
* Optimize read Unions, without create temporary msgpack
* Fix 52, reading from stream when data types mismatch

0.11.1

* fixed nilable types in NamedTuple, 49

0.11.0

* fixed unpack nilable option in NamedTuple, 49
* refactor replace symbols with enums, thanks Fryguy, 47

0.10.0

* Updated to crystal 0.25.0
* Added MessagePack::Serializable

0.9.2

BUG FIXES
* Fix UAP build drop does not exists in nupkg. 186

0.9.1

BUG FIXES
* Fix ByteArrayPacker throws IndexOutOfBoundException when the buffer remaining bytes is equal to packed scalar size. 252

0.9.0

NEW FEATURES
* Enum name transformation via `SerializationContext.EnumSerializationOptions.NameTransformer`.
Built in transformer is placed in `EnumTransoformers`.
Issue 184.
* Polymorphic attributes now supports type qualification. Issue 171.
* Runtime type polymorphism now supports name based type verification. This feature allows to prevent loading malicious or unknown types ibefore assembly loading.
* Asymmetric serializers. You can generate "pack only" serializer when you set SerializationContext.CompabilityOptions.AllowAsymmetricSerializer to true. 68.
* Built in serializer for System.Text.StringBuilder now supports UnpackTo.
* Add serialization to/from MessagePackObject as extension methods of MessagePackSerializer and MessagePackSerializer<T>. Issue 90
* Users of serializer code generator API can specify TextWriter to output. This may improve tooling chain.
* Users of serializer code generator API can suppress [DebuggerNonUserCode] attribute to enable debugger step in.
* SerializerRepository API now expose ContainsFor and GetRegisteredSerializers methods to investigate registered serializers.
* SerializationContext.DisablePrivilegedAccess for restricted environment like Silverlight to select between granting permission or relinquish non-public access.
* UWP build is now included.
* ByteArrayPacker/ByteArrayUnpacker. They are suitable for fixed pattern serialization/deserialization.
* Fast mode of unpacker which omits nested collection management. This option can be disabled with setting UnpackerOptions.ValidationLevel to ValidationLevel.Collection.

IMPROVEMENTS
* Byte array based serialization API now uses ByteArrayPacker/ByteArrayUnpacker, improves about 40% faster than Stream based.
* Deserialization now uses ValidationLevel.None, improves about 30% faster than validating one.
* Packer/Unpacker performance improvements about 10-20%. As a result, new byte array "fast" unpacker is about 3x faster than previous unpacker.

BUG FIXES
* Fix nuspec to prevent old NuGet clients which do not support .NET Standard TFMs. Issue 177.
* The generated code for the type which has Tuple typed member uses old PackHelper API.
* Fix struct deserialization. Issue 189. Thank you samcragg!
* Fix asynchronous packing is not be emitted correctly. Issue 201
* Fix SerializerCodeGenerator does not handle collections correctly for IsRecursive = true. Issue 203
* Fix extra field causes IndexOutOfBoundException when reflection based serializers are used. Issue 199
* Fix some built-in serializers throws InvalidOperationException instead of SerializationException for type errors. Issue 204
* Fix a combination of readonly members and collection members incorrect code generation when the type also have deserialization constructor. Issue 207.
* Fix built-in collection serializers such as List<T> serializer causes SecurityException when the program run in restricted environment like Silverlight. Issue 205.
* Fix null items of complex type in List<T> or Dictionary<TKey, TValue> will not be deserialized as null. Issue 211. (from 0.8.1)
* Fix types which implement IPackable and IUnpackable but do not have any members cannot be serialized. Issue 202
* Fix Windows Native build error. Issue 206.
* Fix constructor deserialization fails if the constructor parameters order is not lexical. Issue 233
* Fix asynchronous multi dimensional array deserialization corruption.
* Fix enum serialization throws NullReferenceException in Unity. Issue 215.
* Fix MessagePackSerializer.Capability does not work correctly in Unity.
* Fix polymorphic serializer error in Unity.

0.8.1

BUG FIXES
* Fix null items of complex type in List<T> or Dictionary<TKey, TValue> will not be deserialized as null. Issue 211.

0.8.0

Nothing from 0.8.0 beta.

0.7.6

* Fix bug to raise IndexOutOfBoundsException for Bignum value with small int in JRuby

0.7.5

* Improved support for i386/armel/armhf environments
* Fix bug for negative ext type id and some architectures (arm*)

0.7.4

* Improved compatibility of Packer between CRuby and JRuby about argument IO-ish object values.

0.7.3

* Add Packerwrite_float32 method to pack floating point numbers into FLOAT of messagepack.

0.7.2

* Improved compatibility of Unpacker between CRuby and JRuby to accept stream-like object
by checking respond_to(:read) in addition to class check

0.7.1

BUG FIXES
* Relaxes .NET Framework version. .NET 4.5.0, 4.5.1, 4.6.0 are resupported. Issue 176.
* Reduce memory allocation. Issue 179.

0.7

This release includes 0.6.8 fixes. Here are cumulative changelogs from 0.6.8.
(There are no changes from 0.7.0-rc1)

MAJOR BREAKING CHANGES
* PackerCompatibilityOptions.None is now default. This means that msgpack bin or str8 formats are used by default.
You can still turn off them by PackerCompatibilityOptions.Classic.

MINOR BREAKING CHANGES
* .NET 4.0, 4.5.0, 4.5.1, 4.6.0 are no longer supported.
* Unity without IL2CPP (a.k.a. AOT) is no longer supported.
* IPackable/IUnpackable is respected for collections now. Issue 153.
This behavior can be disabled by setting SerializationCompatibilityOptions.IgnorePackabilityForCollection to true.
* mpu.exe now works on .NET 4.6.1.

TRIVIAL BREAKING CHANGES
* Generated serializers code has different structure, it might break your custom toolset which depends generated code structure.
* Generated serializer now always check SerializationContext.SerializationMethod when they serialize objects. Changing SerializationContext.SerializationMethod in use causes unexpected behavior even it is extremely rare to do it.
* Generated serializers code has different structure, it might break your custom toolset which depends generated code structure.
* Internal structure for Silverlight builds are changed. They now use only reflection based serializers and pre-generated serializers instead of Expression Tree based serializers.

NEW FEATURES
* Add .NET Core support. Note that .NET Core does NOT support CodeDOM or persistance of AsemblyBuilder, so MsgPack for CLI .NET Core build cannot support code generation. To generate source code or assembly of serializers in non-Windows environment, you must use Mono with .NET 4.5 build. Issue 128
* Add buffering option for Packer/Unpacker which can be enabled by PackerUnpackerStreamOptions.WithBuffering = true. It should improve performance for non-buffered stream like NetworkStream.
* Async support. Issue 49. Note that it is highly recommended to use buffering feature of Packer or Unpacker factory methods to avoid too chutty asynchronous I/O call. In addition, async API may avoid unnecessary blocking but it is not so efficienty in most cases.
* SerializerGenerator.GenerateSerializerCodeAssembly now supports custom namespace. Issue 138.
* Add IgnoreDataMemberAttribute to ignoring member indicators. Issue 146.
* Unity IL2CPP support. Unity DLLs now support IL2CPP with various AOT issue workarounds. Unity build requires 5.3.5f1 or above.
* Xamarin iOS linker support.

IMPROVEMENTS
* Exceptions now includes stream position for seekable stream or "offset from Unpacker construction" for non-seekable stream.
* Generated code now well structured which improves debuggability, it also remove some redundant expressions.
* Move throw statements from hot-path to improve performance a bit.
* Generated serializer now always check SerializationContext.SerializationMethod when they serialize objects. No longer need to re-generate serializer codes/assemblies to switch serialization method between array and map.
* Generated code now more structured which improves debuggability, it also remove some redundant expressions.
* DateMemberAttribute matching is now name based instead of type based.
* The type which implement IEnumerable but does not implement Add now supported. Issue 169.
This behavior can be disabled with setting SerializationContext.CompatibilityOptions.AllowNonCollectionEnumerableTypes to false.
* mpu.exe and SerializerGenerator now supports compatibility switches.

BUG FIXES
* Fix Unpacker.Skip failes when the stream is fragmented such as raw NetworkStream.
* Fix generated serializer codes are not available in WinRT/UWP because of reflection API incompatibility when the type has non-public and explicitly marked fields/properties.
* Fix explicit IPackable/IUnpackable interface implementation causes serializer generator error. Issue 150.
* Fix non-public collection typed members with attributes causes serialization generation error. Issue 152.
* Fix collection only implements IEnumerable may cause NotSupportedException.
* Fix hidden by signature members ("new" in C) causes invalid serializer code generation. Issue/PR 147, 161, 162.
* IPackable/IUnpackable is respected for collections now. Issue 153.
* Fix the Unpacker always returns 0 when the underlying stream has double typed value.
* Fix MessagePackObject.PackToMessage does not look PackerCompatibilityOptions. Issue 168.
* Fix type initializer causes InvalidOperatiionException of serializer generation on WinRT projects. 170.
* Fix batch serializer code generation may report invalid error message due to context reset leaking.
* Fix reflection based serializer possibly throws NotSupportedException instead of SerializationException.

KNOWN ISSUES
* Reflection based serializers in Unity build is not stable even if you specify [Preserve] and/or link.xml.

0.7.0

* Fixed NamedTuple packing, unpacking
* Added method to_msgpack(io : IO)
* Fixed packing unions with nils

0.7rc1

This release supports .NET Core 1.0 final.

BREAKING CHANGES
* netstandard 1.1 now do NOT support System.DBNull because System.Data.Common final package supports only >=1.2 (affects 0.7.0-alpha/beta only).
* mpu.exe now works on .NET 4.6.1.

IMPROVEMENTS
* The type which implement IEnumerable but does not implement Add now supported. Issue 169.
This behavior can be disabled with setting SerializationContext.CompatibilityOptions.AllowNonCollectionEnumerableTypes to false.
* mpu.exe and SerializerGenerator now supports compatibility switches.

BUG FIX
* Fix batch serializer code generation may report invalid error message due to context reset leaking.
* Fix reflection based serializer possibly throws NotSupportedException instead of SerializationException.

0.7beta2

NEW FEATURES
* Add Xamarin iOS linker support.

BUG FIXES
* Fix type initializer causes InvalidOperatiionException of serializer generation on WinRT projects. 170.
* Fix package dependency issue prevents *-aot runtime cannot install MsgPack.Cli packages (affects 0.7.0-beta1 only).
* Fix Xamarin iOS AOT releated bugs (affects 0.7.0-beta1 only).

BREAKING CHANGES
* netstandard1.1 and 1.3 now do NOT support code generation (Reflection.Emit) based serializer (affects 0.7.0-alpha/beta only).

0.7beta1

This release cleans up API surface and internal code for 0.7 stable release.

MAJOR BREAKING CHANGES
* PackerCompatibilityOptions.None is now default. This means that msgpack bin or str8 formats are used by default.
You can still turn off them by PackerCompatibilityOptions.Classic.

MINOR BREAKING CHANGES
* UnpackHelpers.UnpackValueTypeValue signature is changed (note that this API has not been published in stable release yet).
* UnpackHelpers.UnpackComplexObject[Async] with currentKey parameter are removed(note that this API has not been published in stable release yet).
* Rename SerializerCapabilities>Unknown to SerializerCapabilities.None (note that this API has not been published in stable release yet).
* Remove ISupportMessagePackSerializerCapability(note that this API has not been published in stable release yet).
* Reflection based serializers now do not use IPackable/IUnpacabke members when the type does not implement IAsyncPackable/IAsyncUnpackable(note that this API has not been published in stable release yet).

BUG FIXES
* Fix the Unpacker always returns 0 when the underlying stream has double typed value.
* Fix MessagePackObject.PackToMessage does not look PackerCompatibilityOptions. Issue 168.

0.7.0alpha3

BREAKING CHANGES
* Internal structure for Silverlight builds are changed. They now use only reflection based serializers and pre-generated serializers instead of Expression Tree based serializers.
* IPackable/IUnpackable is respected for collections now. Issue 153.

IMPROVEMENTS
* Improve .NET Core support with work around for corefx GetInterfaceMap() limitation. .NET Core build requires RC2 or above.
* Improve Unity support. Unity DLLs now support IL2CPP with various AOT issue workarounds. Unity build requires 5.3.5f1 or above.
* DateMemberAttribute matching is now name based instead of type based.

NEW FEATURES
* SerializerGenerator.GenerateSerializerCodeAssembly now supports custom namespace. Issue 138.
* Add IgnoreDataMemberAttribute to ignoring member indicators. Issue 146.

BUG FIXES
* Fix explicit IPackable/IUnpackable interface implementation causes serializer generator error. Issue 150.
* Fix non-public collection typed members with attributes causes serialization generation error. Issue 152.
* Fix generated serializer codes are not available in WinRT/UWP because of reflection API incompatibility when the type has non-public and explicitly marked fields/properties.
* Fix collection only implements IEnumerable may cause NotSupportedException.
* Fix hidden by signature members ("new" in C) causes invalid serializer code generation. Issue/PR 147, 161, 162.
* IPackable/IUnpackable is respected for collections now. Issue 153.
This behavior can be disabled by setting SerializationCompatibilityOptions.IgnorePackabilityForCollection to true.

KNOWN ISSUES
* Reflection based serializers in Unity build is not stable even if you specify [Preserve] and/or link.xml.
* .NET Core packaging is under testing.

0.7.0alpha2

This release includes 0.6.8 fixes.

BREAKING CHANGES
* Generated serializer now always check SerializationContext.SerializationMethod when they serialize objects. Changing SerializationContext.SerializationMethod in use causes unexpected behavior even it is extremely rare to do it.
* Generated serializers code has different structure, it might break your custom toolset which depends generated code structure.
* .NET 4.0, 4.5.0, 4.5.1, 4.6.0 are no longer supported.

IMPROVEMENTS
* Generated serializer now always check SerializationContext.SerializationMethod when they serialize objects. No longer need to re-generate serializer codes/assemblies to switch serialization method between array and map.
* Generated code now more structured which improves debuggability, it also remove some redundant expressions.

NEW FEATURES
* Async support. Issue 49.

KNOWN ISSUES
* CoreCLR(.NET Core) is not supported because of corefx 5381.

0.7.0alpha1

NEW FEATURES
* Add .NET Core support. Note that .NET Core does NOT support CodeDOM or persistance of AsemblyBuilder, so MsgPack for CLI .NET Core build cannot support code generation. To generate source code or assembly of serializers in non-Windows environment, you must use Mono with .NET 4.5 build. Issue 128
* Add buffering option for Packer/Unpacker which can be enabled by PackerUnpackerStreamOptions.WithBuffering = true. It should improve performance for non-buffered stream like NetworkStream.

IMPROVEMENTS
* Exceptions now includes stream position for seekable stream or "offset from Unpacker construction" for non-seekable stream.
* Generated code now well structured which improves debuggability, it also remove some redundant expressions.
* Move throw statements from hot-path to improve performance a bit.

BREAKING CHANGES
* Generated serializers code has different structure, it might break your custom toolset which depends generated code structure.

BUG FIXES
* Fix Unpacker.Skip failes when the stream is fragmented such as raw NetworkStream.

0.6.8

BUG FIXES
* Fix Unpacker.ReadXxx from uint64 encoded value returns invalid(nagative) value.
* Fix Unpacker.ReadObject does not handle collection. 143
* Fix intentionally "empty" member causes ArgumentNullException in serializer generation. Issue 145

0.6.7

BUG FIXES
* Fix Unpacker.ReadXxx returns 0 when try to read integral value from floating point stream or vice versa. Issue 139.

0.6.6

BUG FIXES
* Fix [MessagePackRuntimeType] fails when the type is declared in global namespace. Issue 137.

0.6.5.1

BUG FIXES
* mpu.exe -l option does not work in non-Windows environment. Issue 125.

0.6.5

BUG FIXES
* Fix enum handling in code generation for enum values which do not have corresponding single symbols. Issue 121(cont)

IMPROVEMENTS
* Improve Nullable<T> serializer source code for SerializerGenerator.GenerateSerializerCodes with WithNullable. Issue 121(cont)
* Add Unity AOT work around method MessagePackSerializer.PrepareType<T>(). This solves a part of issue 99 and an issue 124.
* Fix build issues in source tree release for Unity.
* mpu.exe --library now creates merged source tree.
* Add work arounds for Unity C compiler issue for DictionaryMessagePackSerializer`3.cs
* Add UNITY_5 for UNITY compiler constant determination.
* Remove unnecessary Pack<T>() usage to avoid unexpected performance loss and/or Unity(and its Mono) C compiler overload resolution failure.

0.6.4

BUG FIXES
* Fix StackOverflowException on SerializerGenerator.GenerateSerializerCodes with WithNullable and IsRecursive. Issue 121(cont)

0.6.3

BUG FIXES
* Add new custom serializer registration option which registers nullable serializer together (this API is NOT available in Unity3D yet because of AOT issue). Issue 116.
* Fix reflection based serialization for non-public member fails for members which use generic type parameter(s). Issue 119
* Fix DateTimeOffset? serializer act different from DateTime? serializer for DateTimeSerializationMethod setting change. A part of issue 117
* Fix array element type is not processed recursively even if the IsRecursive option of serializer generator is true. Issue 120

IMPROVEMENTS
* Improve Unpacker performance.
* Add WithNullable feature to serializer generator. It specifies generating nullable companions together. Issue 121

0.6.2

BUG FIXES
* Fix built-in serializer for System.Object does not honor current context. Issue 111.

IMPROVEMENTS
* Add built-in System.Globalization.CultureInfo serializer. Issue 112.

0.6.1.1

This release is only zip release for Unity because other dists are not affected at all.

BUG FIXES
* Fix IL2CPP crash. Issue 101.

0.6.1

IMPROVEMENTS
* Recursive generation now supports generic arguments and array element types. Issue 106.
* New SerializerGenerator.GenerateSerializerCodeAssembly and GenerateSerializerSourceCodes, which return structured information including target types and serializer type names. It should improve pre-generation experience. Issue 107.

BUG FIXES
* Fix SerializerGenerator does not filter out built-in types when they are appeared in members instead of API arguments. Issue 105.
* Fix type embedding fails if the type name starts with its assembly simple name. Issue 108.

0.6

------------------

New features:

- Added `msgpack2json` continuous mode (`-c` and `-C`) to convert a stream of top-level objects (4)

Bug fixes:

- Fixed a bug that could cause a newline to be printed incorrectly in pretty-printing mode

0.6.0

IMPROVEMENTS
* ImmutableArray now supported.
* SerializerGenerator now support automatic dependent serializer(s) generation.
* Add SerializerContext.ResolveSerializer event to make pre-built serializer registration more robust. Issue 103.

BUG FIXES
* Fix Unpacker does not handle bin types and str8 type in skipping. PR 98, Thank you webcoyote!
* Fix Unpacker does not handle ext types in skipping.
* Fix SerializerGenerator and mpu.exe do not handle EnumSerializationMethod. Issue 102.
* Fix SerializerGenerator and mpu.exe do not exclude types which are handled with built-in serializers. Issue 104.

0.5.12

* Added support for JRuby 9K.
* Added a benchmarking suite.
* Fixed a bug in the handling of options given to MessagePack.unpack in JRuby.

0.5.11

NEW FEATURE
* `MessagePackIgnoreAttribute` to exclude properties. Issue 55

0.5.10

CHANGES
* WinRT and Windows Phone (not Silverlight) builds now do not have AllowPartiallyTrustedCallersAttribute because it causes MethodAccessException on Windows Phone. This should not be breaking change effectively because apps in app container themselves should be SecurityCritical. Issue 64.

BUG FIXES
* Avoid memcmp usage for Windows Phone App Certification. Issue 65.

0.5.9

* Support std::tr1 unordered containers by default (51, 63, 68, 69)
* Remove some warnings (56)
* Fix segmentation fault after malloc failures (58, 59)
* Fix alloc/dealloc mismatch (52, 61)
* Fix sample codes (60, 64)
* Support implicit conversion from integer to float/double (54)
* Improve documents (45, 75, 82, 83)
* Support CMake (20, 87)
* Remove Ruby dependencies in bootstrap (86, 87)
* Add FILE* buffer (40)
* Other bug fixes and refactoring: 39, 73, 77, 79, 80, 81, 84, 90

0.5.8

BUG FIXES
* Fix Unpacker fails to unpack data when the stream returns data one by one. Issue 59
* Fix Unpacker cannot read empty bytes from System.Net API. Issue 60

Relase 0.5.9 - 2015/2/01

BUG FIXES
* Fix NullReferenceException is thrown for annotated non-public members serialization/deserialization in WinRT.
* Fix collection typed property which has non-public setter are not handled correctly. Issue 62.
* Fix ArgumentOutOfRangeException occurs when serializing members count is greater than 127. Issue 63.

0.5.7

BUG FIXES
* Fix serializer uses unnecessary reflection to get collection typed property.
* Fix generated serializers in source code style may have extra fields when multiple serializers are generated at a time.
* Mpu.exe's --refernce option distinction now respects platform rules and uses absolute paths instead of relative paths.
* Fix lambda expressions in source code causes failure of mpu.exe in Mono.

IMPROVEMENTS
* Add mpu.exe -r option which is shorthand of --reference.
* Add default and implicit --reference=./MsgPack.dll option in mpu.exe

0.5.6 insecure

BUG FIXES
* The type which has indexer(s) and does not implement IDictionary nor IDictionary<TKey,TValue> is failed to create serializer. Issue 49
* Fix Unpacking a map with extra fields. Issue 50

0.5.5 insecure

BUG FIXES
* The serializer returned with `MessagePackSerializer.Create<MessagePackObjectDictionary>()` does not deserialize nested element correctly. Issue 42
* MessagePackConvert.FromDateTime[Offset] might emit wrong value due to rounding error. Issue 44

IMPROVEMENTS
* Portable library drop for Universal App does not refer `libc` now. Issue 41

0.5.4 insecure

FEATURES
* Add mpu --internal option for source code form assets in Unity3D.

BUG FIXES
* An -o option of mpu.exe -s does not work.
* Same (.NET4.5 + WinRT8 + WP8.1) configured portable project cannot refer MsgPack NuGet package.

MISCS
* Unity drop is now only included in zip file at github release page.

0.5.3 insecure

* adds type::fix_{u,}int{8,16,32,64} types
* adds msgpack_pack_fix_{u,}int{8,16,32,64} functions
* adds packer<Stream>::pack_fix_{u,}int{8,16,32,64} functions
* fixes include paths

0.5.2 insecure

BREAKING CHANGES
* MessagePackObjectEqualityComparer does not inherit EqualityComparer<T> now to avoid ExecutionEngineException on iOS.

FEATURES
* Support Windows Phone 8.1 (Both of WinRT & Silverlight) issue 36
* Add MessagePackSerializer.Get() for usability.

BUG FIXES
* Fix FILETIME is not available in WinRT
* Fix does not work in Unity3D. issue 37

Relase 0.5.3 - 2014/09/15

BREAKING CHANGES
* MessagePackObject from byte[] now always act as binary, not string. It affects only low level API and unpacked from bin8, bin16, bin32 types. Issue 39

FEATURES
* Using new MessagePackMemberAttribute.Name property, you can customize map keys of serialized objects when you use SerializationMethod.Map. Related to issue 38

0.5.1 insecure

FEATURES
* Reflection serializer. It enables on-the-fly serializer generation in Xamarin and Unity3D.

BUG FIXES
* Fix concurrency bug in WinRT.
* Fix built-in NamedValueCollection serializer generates invalid stream when the values of a key are empty.

NOTE
* This release changes drop for Unity3D from source assets to dll assets (source assets are still available).

0.5

FEATURES
* CodeDOM serializer generator, which generates source code for custom serializer. It enables debugger break points, insert your own codes, etc.
* Start Xamarin supporting with CodeDOM serializer generator and runtime code generation free Nullable/Enum serializers.
* Start Unity supporting with same mechanism as Xamarin support and mpu.exe helper tool.
* Support .NET 4.5 including immutable collections support.
* Support on-the-fly IEnumerable<T> (such as the result of Enumerable.Range()) packing. Note that unpacking is still unsupported.
* Support underlying integral based enum serialization.
* Add new PackerUnpackerExtensinos' extension methods for collections and dictionaries to improve overloading stability (predictability).
* System.Runtime.Serialization assembly is not required now (pull-request 29).
* Non public members annotated with MessagePackMember attribute or DataMemberAttribute are supported now (issue 33).

BUG FIXES
* PackerUnpackerExtensions.Pack(Object) takes long time. (14)
* Fix Readme code error (issue 20. Ported from 0.4 branch.)
* Fix MessagePack.Create<T>() might fail due to type lock synchronization does not coordinate multiple threads (issue 19. Ported from 0.4 branch.)
* Fix deserializing as MessagePackObject fails when unpacking data is list or map (issue 13. Ported from 0.4 branch.)
* Readonly members now silently ignored except they are annotated with MessagePackMember attribute or DataMemberAttribute (pull-request 30, issue28).

NOTE
* This release unifies .NET build and Mono build for main source codes (testing codes have not been unified yet.)
* This release contains reimplementation of serializer generation stack. It might change implementation detail dependant behavior (it usually potential issue).

0.5.0 insecure

* msgpack_object_type is changed. MSGPACK_OBJECT_NIL is now 0x00.
* New safe streaming deserializer API.
* Add object::object(const T&) and object::operator=(const T&)
* Add operator==(object, const T&)
* MSGPACK_DEFINE macro defines msgpack_object(object* obj, zone* z)
* C++ programs doesn't need to link "msgpackc" library.


1.�޸�����ֵΪ127ʱ�������Ϊ0�����,��л(Putree  274638001<spiritringgmail.com>)����
2015-07-14 15:28:45

2.����DecodeFormFile����
2015-07-14 16:31:32

3.�޸�ForcePathObject���Ҳ����Ӷ����bug,��л(Putree  274638001<spiritringgmail.com>)����
2015-07-14 16:32:13

0.4.8

=====
:release date: 2016-07-29

Bugs fixed
----------

* Calling ext_hook with wrong length. (Only on Windows, maybe. 203)

0.4.7

* Fixed serialization of double values on ARM OABI architectures
* Fixed byteorder problem on big-endian platforms
* Don't use MRI internals in the Ruby extension for Rubinius
* Detect whether st.h is present and don't use RUBY_VM as the condition for
Rubinius

0.4.6

* Fixed compile error problem on Mac OS X Lion

0.4.5

* Improves compatibility with JRuby

0.4.4

BUG FIXES
* Fix creating serializer for IDictionary<TKey, TValue> causes NullReferenceException.
* Fix serializers' default constructor IL (it is not used in the library, but can be called via reflection).

0.4.3

BUG FIXES
* Fix creating serializer for IEnumerable<T> (and not IList<T> nor IDictionary<TKey, TValue>) causes NullReferenceException.
* Fix built-in object serializer cannot deserialize array/map correctly.
* Fix PackerUnpackerExtensions.Pack<T>() ignore Default serialization context and uses brand-new instance every time.

0.4.2

BUG FIXES
* Add API to re-register serializer (issue 24). It allows you to override default(built-in) serializer as you like.

0.4.1

BUG FIXES
* Fix Readme code error (issue 20.)
* Fix MessagePack.Create<T>() might fail due to type lock synchronization does not coordinate multiple threads (issue 19.)
* Fix deserializing as MessagePackObject fails when unpacking data is list or map (issue 13.)

0.4

BREAKING CHANGES
* Packer.PackRaw(IEnumerable<byte>) can emit compact binary when the IEnumerable<byte> object also implements ICollection<byte> or ICollection.
* There are little issues in corner cases.
* Unpacker.Data never returns null even if it is in before head of underlying stream.
* MessagePackSerializer<T>.UnpackFrom does not throw exception when unpacker is still in before head of the underlying stream. Note that generated serializer still require that the unpacker is in head of the underlying array or map.

FEATURES
* Support binary types, string8 types, and extension types of MsgPack spec.
see https://github.com/msgpack/msgpack/blob/master/spec.md for details.
* SerializerGenerator now enable to specify output directory.
* Specify default collection types for well-known abstract collection types (IList<T>, IDictionary<TKey,TValue>, etc.).

BUG FIXES
* Fix SerializerGenerator only support one serealizer per assembly.
* Fix UTC DateTime serialization is corrupt in Mono.
* Fix Boolean? unpacking is not implemented.
* Fix bugs of NilImplication.

NOTE
* Nullable<MessagePack> based unpacker API is deprecated because of their poor performance. You should use fast non-nullable APIs instead (properties/methods with 'Data' suffixes).
* This version is tested on .NET 4.5 and Mono 2.10.8.1.

0.4.0

* Support for binary (Thanks maiha)
* Faster writes (Thanks kostya)
* Faster reads (Thanks asterite)
* Mapping (Thanks kostya)
* Writers for tuples and symbols (kostya)

0.3.4

-------------
* Support PHP 5.3.x version on Windows.
(note: NAN and Resource is failed)

0.3.3

-------------
* Update msgpack header files.
* Fix unpack internal processing.

0.3.2.1

BUG FIXES
* Fix Unpacker.ReadString/ReadBinary of subtree unpacker leads to subsequent unpacking failure when unpacked value is nil or empty.

0.3.2

FEATURES
* Support safe deserialization for the stream which contains new types of MsgPack spec.
see https://github.com/msgpack/msgpack/blob/master/spec.md for details.

BUG FIXES
* Fix infinite loop for invalid stream which header is Raw and it does not have enough length contents.

0.3.1

FEATURES
* [issue1] Add byte-array based serialization APIs.

BUG FIXES
* [issue6] Fix deserializing from a map which contains unknown member causes MessageTypeException.

0.3

BREAKING CHANGES
* Unpacker.Feed is removed. Use Unpacker.Create(Stream) and feed data to the passing Stream instead of Unpacker.
* IUnpackable.UnpackFromMessage now takes Unpacker instead of MessagePackObject to be symmetric as IPackable and improve custom unpacking performance.
* Unpacker.Create() is removed because it is completely useless.
* Unpacker does not remember interruptted stream state now. So, unpacker throws exception when it reaches end of stream.
Data feeding should be handled on the underlying stream layer like NetworkStream does -- it is not unpacker layer's responsibility.

FEATURES
* Improve protobuf-net compatibility.
* Add non-generic overload for MessagePackSerializer.Create().
* Add direct read method for primitive types on Unpacker. It enable dramatic performance improvement on deserializer.
* Support WinRT (experimental, .NET Fx core only, that is, WinMD is not supported yet).
* Add SerialializerGenerator which provides capability to generate pre-built serializer assembly.
* Unpacker.ReadItem/UnpackSubtree makes easy to unpack collection as MessagePackObject.

IMPROVEMENTS
* Improve unpacking performance.

BUG FIXES
* Fix 'sparse' declaration (i.e. field ids are not continuous on the objects' MessagePackDataMember attribute) causes deserialization error.
* Fix synchronization related error.
* Serializers respects IPackable/IUnpackable.

0.3.0

-------------
* Change msgpack_unpack.c (used template)
* Add php_only ini option (true / false)
* Change class MessagePack and MessagePackUnpacker __construct option.
* Add class MessagePack and MessagePackUnpacker setOption method.

0.2.4

=====
:release date: 2012-12-22

Bugs fixed
----------

* Fix SEGV when object_hook or object_pairs_hook raise Exception. (39)

0.2.3

Added

- Automated release process

0.2.2

* inst/include/msgpack/v1/object.hpp (<<): Carry over a static_cast<>
from upstream to suppress a new warning from g++-8.1 [CRAN request]

2018-01-15  Dirk Eddelbuettel  <edddebian.org>

0.2.1

Added

- Added support for the [timestamp extension type](https://github.com/msgpack/msgpack/blob/master/spec.mdtimestamp-extension-type)

0.2

FEATURES
* Geneneric Serializer is implemented. (See MessagePackSerializer.Create<T>().)
* Redesign basic APIs.
* Support Mono, Silverlight, WP 7.1 (experimental).
* RPC (See https://github.com/yfakariya/msgpack-rpc-cli/)

0.2.0

Added

- Added low level decoding methods

0.1.13

======
:release date: 2012-04-21

New
---
* Don't accept subtype of list and tuple as msgpack list. (Steeve Morin)
It allows customize how it serialized with ``default`` argument.

Bugs fixed
----------
* Fix wrong error message. (David Wolever)
* Fix memory leak while unpacking when ``object_hook`` or ``list_hook`` is used.
(Steeve Morin)

Other changes
-------------
* setup.py works on Python 2.5 (Steffen Siering)
* Optimization for serializing dict.

0.1.12

======
:release date: 2011-12-27

Bugs fixed
----------

* Re-enable packs/unpacks removed at 0.1.11. It will be removed when 0.2 is released.

0.1.11

======
:release date: 2011-12-26

Bugs fixed
----------

* Include test code for Python3 to sdist. (Johan Bergström)
* Fix compilation error on MSVC. (davidgaleano)

0.1.10

======
:release date: 2011-08-22

New feature
-----------
* Add ``encoding`` and ``unicode_errors`` option to packer and unpacker.
When this option is specified, (un)packs unicode object instead of bytes.
This enables using msgpack as a replacement of json. (tailhook)

0.1.9

=====
:release date: 2011-01-29

New feature
-----------
* ``use_list`` option is added to unpack(b) like Unpacker.
(Use keyword argument because order of parameters are different)

Bugs fixed
----------
* Fix typo.
* Add MemoryError check.

0.1.8

=====
:release date: 2011-01-10

New feature
-----------
* Support ``loads`` and ``dumps`` aliases for API compatibility with
simplejson and pickle.

* Add *object_hook* and *list_hook* option to unpacker. It allows you to
hook unpacking mapping type and array type.

* Add *default* option to packer. It allows you to pack unsupported types.

* unpacker accepts (old) buffer types.

Bugs fixed
----------
* Fix segv around ``Unpacker.feed`` or ``Unpacker(file)``.

0.1.7

=====
:release date: 2010-11-02

New feature
-----------
* Add *object_hook* and *list_hook* option to unpacker. It allows you to
hook unpacking mapping type and array type.

* Add *default* option to packer. It allows you to pack unsupported types.

* unpacker accepts (old) buffer types.

Bugs fixed
----------
* Compilation error on win32.


2019-05-21  Dirk Eddelbuettel  <edddebian.org>

* DESCRIPTION (Date, Version): Roll minor release

* inst/CITATION: Added citation information

* README.md: Mention R Journal paper

2018-11-18  Dirk Eddelbuettel  <edddebian.org>

0.1.5

-------------
* Add msgpack_pack.c
* Add msgpack_unpack.c
* Update msgpack.c

0.1.4

-------------
* Change broken random data.
* Support PHP 5.2.x version.

0.1.3

-------------
* Fix broken random data.
* Change arrays and objects.

0.1.2

-------------
* Add Serializable class support.
* Fix arrays and objects reference.

0.1.1

-------------
* Add session support.

0.1

Porting from Message Pack Java 0.3.

FEATURES
* MessagePackObject is implemented.
* Packer APIs (Packer class) are implemented.
* Buffered Unpacker APIs (Unpacker class) are implemented.
* Unbuffered Unpacker APIs (Unpacking class) are implemented.

0.1.0

* **(breaking change)** MessagePack.pack now returns a slice (thanks Xanders)


This is the revision history of msgpack/msgpack

0.0.6

* Accept any iterable when serializing, not just List
* Accept ByteData when serializing (will be deserialized as Uint8List)

0.0.5

* Changed return value from `List<int>` to `Uint8List`.