├── .github └── ISSUE_TEMPLATE │ └── bug_report.md ├── CHANGELOG.md ├── COPYING ├── LICENSE_1_0.txt ├── NOTICE └── README.md /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | msgpack-c or msgpack-cxx version. 13 | e.g) msgpack-cxx 5.0.0 14 | 15 | **To Reproduce** 16 | Please prepare https://stackoverflow.com/help/minimal-reproducible-example 17 | 18 | **Expected behavior** 19 | A clear and concise description of what you expected to happen. 20 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # 2020-06-05 version 3.3.0 2 | * Add json example for C (#870) 3 | * Add both header and body packing functions for C (#870) 4 | * Set default ref_size and chunk_size to vrefbuffer (#865) 5 | * Add examples (#861) 6 | * Improve build system (#839, #842) 7 | * Improve tests (#829) 8 | * Improve documents (#828) 9 | * Remove some warnings (#827, #851, #871) 10 | * Improve CI environment (#824, #831, #833, #834, #846, #860, 874) 11 | 12 | # 2019-12-10 version 3.2.1 13 | * Fix snprintf return value checking (#821) 14 | * Remove some warnings (#819) 15 | * Fix fbuffer result checking (#812) 16 | * Fix temporary object handling (#807) 17 | * Improve cmake support (#804) 18 | * Fix invalid `int main` parameter (#800) 19 | * Improve supporting platform (#797, #817) 20 | * Fix ZLIB error handling (#795) 21 | * Remove unused variable (#793) 22 | * Improve integer overflow checking (#792) 23 | 24 | # 2019-05-27 version 3.2.0 25 | 26 | * Fix invalid include (#783) 27 | * Add timespec support (#781) 28 | * Fix unchecked fnprintf on C (#780) 29 | * Improve integer overflow checking on C (#776) 30 | * Fix warnings on `-Wconversion` (#770, #777, #784) 31 | * Fix invalid passed by value on aligned_zone_size_visitor (#764) 32 | * Improve windows support (#757, #779) 33 | * Fix msgpack::object size caluclation error (#754) 34 | * Fix memory error on example code (#753) 35 | * Fix redundant memory allocation on C (#747) 36 | * Fix msgpack::type::tuple base class conversion (#743) 37 | 38 | # 2018-09-09 version 3.1.1 39 | 40 | * Add force endian set functionality (#736) 41 | * Fix vrefbuffer memory management problem (#733) 42 | * Fix msvc specific problem (#731, #732) 43 | * Update boost from 1.61.0 to 1.68.0 (#730) 44 | * Fix msgpack_timestamp type mismatch bug (#726) 45 | 46 | # 2018-08-10 version 3.1.0 47 | 48 | * Improve documents (#687, #718) 49 | * Add fuzzer support (#689) 50 | * Fix msgpack::object union member access bug (#694) 51 | * Improve cross platform configuration (#704) 52 | * Fix out of range dereference bug of EXT (#705) 53 | * Add timestamp support. std::chrono::system_clock::time_point is mapped to TIMESTAMP (#706) 54 | * Add minimal timestamp support for C. The type `msgpack_timestamp` and the function `msgpack_object_to_timestamp()` are introduced (#707) 55 | * Improve MSGPACK_DEFINE family name confliction probability (#710) 56 | * Add no static-library build option (BUILD_SHARED_LIBS=ON) (#713, #717, #722) 57 | * Add header only cmake target (#721) 58 | * Add `std::byte` adaptor (#719) 59 | * Remove some warnings (#720) 60 | 61 | # 2018-05-12 version 3.0.1 62 | 63 | * Add fuzz directory to release tar ball (#686) 64 | * Add include file checking for X-Code (#683) 65 | 66 | # 2018-05-09 version 3.0.0 67 | 68 | ## << breaking changes >> 69 | 70 | * Change offset parameter updating rule. If parse error happens, offset is updated to the error position. (#639, #666) 71 | 72 | ## << other updates >> 73 | 74 | * Improve cross platform configuration (#655, #677) 75 | * Improve build system (#647) 76 | * Improve user class adaptor (#645, #673) 77 | * Improve msgpack::object visitation logic (#676) 78 | * Remove some warnings (#641, 659) 79 | * Add `->` and `*` operators to object_handle (#635) 80 | * Improve CI environment (#631, #634, #643, #657, #662, #668) 81 | * Improve documents (#630, #661) 82 | * Refactoring (#670) 83 | * Add OSS-Fuzz support (#672, #674, #675, #678) 84 | 85 | # 2017-08-04 version 2.1.5 86 | * Improve cross platform configuration (#624) 87 | * Add boost asio examples (including zlib) (#610) 88 | * Remove some warnings (#611) 89 | * Fix unpack visitor to treat float32/64 correctly (#613) 90 | * Improve documents (#616) 91 | * Fix alignment problem on some platform (#617, #518) 92 | * Fix conflict std::tuple, std::pair, and boost::fusion::sequence problem (#619) 93 | 94 | # 2017-08-03 version 2.1.4 (Invalid) 95 | * See https://github.com/msgpack/msgpack-c/issues/623 96 | 97 | # 2017-06-15 version 2.1.3 98 | * Improve build system (#603) 99 | * Add C++17 adaptors `std::optional` and `std::string_view`. (#607, #608) 100 | * Improve cross platform configuration (#601) 101 | * Remove some warnings (#599, #602, #605) 102 | 103 | # 2017-06-07 version 2.1.2 104 | 105 | * Improve documents (#565) 106 | * Fix empty map parse bug (#568) 107 | * Improve build system (#569, #570, #572, #579, #591, #592) 108 | * Remove some warnings (#574, #578, #586, #588) 109 | * Improve cross platform configuration (#577, #582) 110 | * Add cmake package config support (#580) 111 | * Fix streaming unpack bug (#585) 112 | 113 | # 2017-02-04 version 2.1.1 114 | 115 | * Fix unpacker's buffer management bug (#561) 116 | * Add boost string_view adaptor (#558) 117 | * Remove some warnings (#557, #559) 118 | * Improve coding style (#556) 119 | 120 | # 2017-01-10 version 2.1.0 121 | 122 | ## << breaking changes >> 123 | 124 | * Fix object internal data type is float if msgpack format is float32 (#531) 125 | 126 | ## << recommended changes >> 127 | 128 | * Add `FLOAT64` type. Please use it instead of `DOUBLE` (#531) 129 | * Add `FLOAT32` type. Please use it instead of `FLOAT` (#531) 130 | 131 | ## << other updates >> 132 | 133 | * Add iterator based parse/unpack function(experimental) (#553) 134 | * Add `[[deprecated]]` attribute for C++14 (#552) 135 | * Fix `msgpack_unpack()` return code (#548) 136 | * Fix integer overflow (#547, #549, #550) 137 | * Add example codes (#542) 138 | * Add MSGPACK_NVP. You can use not only variable name but also any strings (#535) 139 | * Fix and Improve build system (#532, #545) 140 | * Fix `gcc_atomic.hpp` include path (#529, #530) 141 | * Improve CI environment (#526) 142 | * Improve documents (#524) 143 | * Add msgpack_unpacker_next_with_size() function (#515) 144 | * Fix `as()` applying condition (#511) 145 | * Fix fbuffer write (#504) 146 | * Add gcc bug workaround (#499) 147 | * Improve object print (#497, #500, #505, #533) 148 | * Remove some warnings (#495, #506, #508, #513, #528, #538, #545) 149 | 150 | # 2016-06-25 version 2.0.0 151 | 152 | ## << breaking changes >> 153 | 154 | * Removed autotools support. Use cmake instead (#476, #479) 155 | * Removed pointer version of msgpack::unpack APIs. Use reference version instead (#453) 156 | * Removed MSGPACK_DISABLE_LEGACY_CONVERT. msgpack::object::convert(T*) is removed by default. Use msgpack::object::convert(T&) instead (#451) 157 | * Removed msgpacl::type::nil. Use nil_t or define MSGPACK_USE_LECACY_NIL (#444) 158 | * Removed std::string to msgpack::object conversion (#434) 159 | 160 | ## << recommended changes >> 161 | 162 | * Replaced msgpack::unpacked with msgpack::object_handle. msgpack::unpacked is kept as a typedef of msgpack::object_handle. (#448) 163 | 164 | ## << other updates >> 165 | 166 | * Add strict size checking adaptor. Relaxed tuple conversion (#489) 167 | * Fix and Improve example codes (#487) 168 | * Add C++/CLI support for nullptr (#481) 169 | * Update the boost libraries that are contained by msgpack-c (#475) 170 | * Fix gcc_atomic.hpp location (#474) 171 | * Add C-Style array support (#466, #488) 172 | * Fix include file dependency (#464) 173 | * Add a visitor version of unpack API (#461) 174 | * Fix JSON string conversion from "nil" to "null" (#458) 175 | * Fix and Improve build system (#455, #471, #473, #486, #491) 176 | * Fix comments (#452) 177 | * Fix unintentional msgpack::zone moving problem (#447) 178 | * Fix operator>> and << for msgpack::object (#443) 179 | * Fix C++03 msgpack::zone::clear() memory access violation bug (#441) 180 | * Fix TARGET_OS_IPHONE checking (#436) 181 | * Fix invalid front() call for empty container (#435) 182 | * Fix compile error on g++6 (C++11 only) (#426, #430) 183 | * Fix zone size expansion logic (#423) 184 | * Fix wrong hader file dependency (#421) 185 | * Fix msvc specific problem (#420) 186 | * Add v2 API support (#415) 187 | 188 | # 2016-01-22 version 1.4.0 189 | 190 | ## << recommended changes >> 191 | 192 | * Define [MSGPACK_DISABLE_LEGACY_NIL](https://github.com/msgpack/msgpack-c/wiki/v1_1_cpp_configure#msgpack_disable_legacy_nil-since-140), then `msgpack::type::nil` is replaced by with `msgpack::type::nil_t` (#408, #411, #412). 193 | Replace `msgpack::type::nil` with `msgpack::type::nil_t` in client codes. 194 | `msgpack::type::nil` will be removed on the version 2.0.0. 195 | * Define [MSGPACK_DISABLE_LEGACY_CONVERT](https://github.com/msgpack/msgpack-c/wiki/v1_1_cpp_configure#msgpack_disable_legacy_convert-since-140), then `msgpack::object::convert(T*)` is removed (#410). 196 | Replace calling `msgpack::bojectconvert(T*)` with `msgpack::bojectconvert(T&)` in client codes as follows: 197 | 198 | ```C++ 199 | int i; 200 | obj.convert(&i); // before 201 | ``` 202 | 203 | ```C++ 204 | int i; 205 | obj.convert(i); // after 206 | ``` 207 | 208 | `msgpack::object::convert(T*)` will be removed on the version 2.0.0. 209 | 210 | Define the macros above as follows when you compile C++ codes that use msgpack-c: 211 | 212 | ``` 213 | g++ -Ipath_to_msgpack/include -DMSGPACK_DISABLE_LEGACY_NIL -DMSGPACK_DISABLE_LEGACY_CONVERT your_code.cpp 214 | 215 | ``` 216 | 217 | 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. 218 | 219 | ## << other updates >> 220 | 221 | * Improve documents (#387, #407) 222 | * Remove C++ version library (#394, #402) 223 | * Add Doxyfile and ChangeLog to the distribution package (#397) 224 | * Add signed/unsigned char test to travis-ci (#398) 225 | * Remove some warnings (#400, #401, #409) 226 | * Fix endian checking. (#404) 227 | 228 | # 2015-11-21 version 1.3.0 229 | 230 | * Change the license from the Apache License Version 2.0 to the 231 | Boost Software License, Version 1.0.(#386) 232 | * Remove some warnings (#365) 233 | * Add std::reference_wrapper support(#373, #384) 234 | * Improve tests (#375, #378, #379, #380) 235 | * Fix msvc specific problem (#376, #383) 236 | * Fix typos (#381) 237 | 238 | # 2015-09-04 version 1.2.0 239 | 240 | ## << breaking changes >> 241 | 242 | * Change std::vector and std::array 243 | mapped to BIN instead of ARRAY (#243) 244 | * Remove redundant copy (#285) 245 | 246 | 247 | ## << other updates >> 248 | 249 | * Add array_ref to map to ARRAY (#243) 250 | * Add variant type and adaptor (#349) 251 | * Add object::convert_if_not_nil() (#357) 252 | * Fix invalid offset update (#354) 253 | * Add C++11 support on MSVC2015(#339, #347) 254 | * Fix and Improve build system (#346, #350, #361, #363) 255 | * Import Boost.Preprocessor as a part of msgpack-c (#312) 256 | * Fix OSX with libc++ specific errors (#334, #362) 257 | * Add customized containers support (#330) 258 | * Add std::unique_ptr and std::shared_ptr support (#329) 259 | * Add missing install files (#328) 260 | * Add shared/static library switching option (#316) 261 | * Improve no throw description on C++11 (#313) 262 | * Import Boost.Predef as a part of msgpack-c (#312) 263 | * Add map based serialize support (#306) 264 | * Add Boost.Fusion support (#305) 265 | * Add v4 format RAW support (#304) 266 | * Fix zbuffer with empty string problem (#303) 267 | * Add non default constructible class support (#302, #324, #327, #331, #332, #345) 268 | * Add inline keyword to function (template) (#299) 269 | * Add EXT type supporting classes (#292, #308) 270 | * Fix raw_ref != comparison (#290) 271 | * Add object deep copy (#288) 272 | * Remove some warnings (#284, #322, #323, #335) 273 | * Improve compiler version checking (#283) 274 | * Add return value to object::convert() (#282) 275 | * Improve move semantic support in C++11 (#279, #353) 276 | * Add Boost.StringRef support (#278) 277 | * Improve CI environment (#276, #294, #338) 278 | * Add converting to JSON (#274, #301) 279 | * Fix iOS specific problem (#270) 280 | * Improve doxtgen document generation (#269) 281 | * Add Boost.Optional support (#268) 282 | * Fix msvc specific problem (#267, #295) 283 | * Add base class serialization. (#265, #277) 284 | * Add and improve examples. (#264, #310, #311, #341, #342, #344) 285 | * Fix wiki URL. (#263) 286 | 287 | # 2015-04-03 version 1.1.0 288 | 289 | ## << breaking changes >> 290 | 291 | * Remove msgpack_fwd.hpp 292 | * Improve user types adaptation mechanism (#262) 293 | Since version 1.0.0, users need to obey the correct include order. 294 | However, it is very difficult to maintain the correct order in big 295 | projects. version 1.1.0 removed this order. Users don't need to 296 | care about include order. Migration guide from 1.0.x to 1.1.0 has 297 | been written. See https://github.com/msgpack/msgpack-c/wiki 298 | 299 | 300 | ## << other updates >> 301 | 302 | * Fix vector size check (#251) 303 | * Fix inttypes.h inclusion on MSVC (#257) 304 | * Support documents generation by Doxygen (#259) 305 | * Remove C99 style variable declaration (#253) 306 | * Improve documents (https://github.com/msgpack/msgpack-c/wiki) 307 | 308 | # 2015-03-22 version 1.0.1: 309 | 310 | * Fix compilation error on Mac 10.9 (#244) 311 | * Fix typos in documents (#240) 312 | * Update CHANGELOG.md for version 1.0.0 (#242) 313 | * Fix erb templates for the next code generation (#239) 314 | 315 | # 2015-03-10 version 1.0.0: 316 | 317 | * Support msgpack v5 format (str, bin, and ext) https://github.com/msgpack/msgpack/blob/master/spec.md (#142) 318 | * Support std::tuple, std::forward_list, std::array, std::unordered_set, std::unordered_map on C++11. tr1 unordered containers are still supported (#53, #130, #137, #154, #169) 319 | * Update msgpack-c as a header-only library on C++ (#142) 320 | * Move include directory (#142) 321 | * Update the name of float format family on msgpack::object from 'dec' to 'f64' (#194) 322 | * Remove existing elements on associative containers when unpacking (#127) 323 | * Add an API versioning functionality https://github.com/msgpack/msgpack-c/wiki/cpp_versioning (#139) 324 | * Add C++11 enum class support (#205) 325 | * Map std::vector and std::array to BIN (#100) 326 | * Map '\0' teminated char* and char const* to STR (#206) 327 | * Add the new parameter on unpacking functions and classes to limit msgpack's bytestream size (https://github.com/msgpack/msgpack-c/wiki/cpp_unpacker#limit-size-of-elements) (#175) 328 | * Add the copy or reference choosing function on unpack() and unpacker (https://github.com/msgpack/msgpack-c/wiki/cpp_unpacker#memory-management) 329 | * Add the new unpack() overloads for C++11 https://github.com/msgpack/msgpack-c/wiki/cpp_unpacker (#128) 330 | * Add a msgpack::object::with_zone (deep) copying function (#133, #163) 331 | * Remove the compile-time defined limit of msgpack nest level on C++ (#218) 332 | * Add the new unpack() overloads that use an existing zone (#201) 333 | * Add the range-based for loop support on msgpack object array and map (#203) 334 | * Add msgpack revision getter function for 'revision' (#237) 335 | * Support EXT for C (#118, #129) 336 | * Fix unpacking buffer allocation problem when malformed data is given (#160, #185) 337 | * Add dll exporting function on MSVC (#162) 338 | * Fix msgpack::zone::allocate_no_align(). Now it allocates the memory that is not aligned as expected (#171) 339 | * Improve documents (https://github.com/msgpack/msgpack-c/wiki) 340 | * Other bug fixes and refactoring: #62, #91, #95, #97, #107, #109, #113, #117, #119, #121, #122, #123, #126, #131, #136, #138, #140, #143, #145, #146, #150, #151, #152, #156, #157, #158, #161, #165, #170, #172, #179, #180, #181, #182, #183, #192, #195, #199, #200, #207, #211, #212, #219, #222, #224, #230, #231, #232, #233, #234, #235 341 | 342 | # 2014-07-02 version 0.5.9: 343 | 344 | * Support std::tr1 unordered containers by default (#51, #63, #68, #69) 345 | * Remove some warnings (#56) 346 | * Fix segmentation fault after malloc failures (#58, #59) 347 | * Fix alloc/dealloc mismatch (#52, #61) 348 | * Fix sample codes (#60, #64) 349 | * Support implicit conversion from integer to float/double (#54) 350 | * Improve documents (#45, #75, #82, #83) 351 | * Support CMake (#20, #87) 352 | * Remove Ruby dependencies in bootstrap (#86, #87) 353 | * Add FILE* buffer (#40) 354 | * Other bug fixes and refactoring: #39, #73, #77, #79, #80, #81, #84, #90 355 | 356 | # 2013-12-23 version 0.5.8: 357 | 358 | * Move to the new github repository msgpack/msgpack-c 359 | * Support the new deserialization specification 360 | * fixes the problem of unpack helpers for array and map with 32bit compilers (#37, #38) 361 | * Other bug fixes and refactoring: #46, #41, #36, #35, #33, #32, #30, #29, #28, #27, #26, #25, #8, #3 362 | * Update of documents: #23, #18, #17 363 | 364 | # 2011-08-08 version 0.5.7: 365 | 366 | * fixes compile error problem with llvm-gcc and Mac OS X Lion 367 | 368 | # 2011-04-24 version 0.5.6: 369 | 370 | * #42 fixes double-free problem on msgpack_unpacker_release_zone 371 | 372 | # 2011-02-24 version 0.5.5: 373 | 374 | * eliminates dependency of winsock2.h header 375 | * fixes msgpack_vc.postbuild.bat file 376 | * fixes some implicit cast warnings 377 | 378 | # 2010-08-29 version 0.5.4: 379 | 380 | * includes msgpack_vc2008.vcproj file in source package 381 | * fixes type::fix_int types 382 | 383 | # 2010-08-27 version 0.5.3: 384 | 385 | * adds type::fix_{u,}int{8,16,32,64} types 386 | * adds msgpack_pack_fix_{u,}int{8,16,32,64} functions 387 | * adds packer::pack_fix_{u,}int{8,16,32,64} functions 388 | * fixes include paths 389 | 390 | # 2010-07-14 version 0.5.2: 391 | 392 | * type::raw::str(), operator==, operator!=, operator< and operator> are now const 393 | * generates version.h using AC_OUTPUT macro in ./configure 394 | 395 | # 2010-07-06 version 0.5.1: 396 | 397 | * Add msgpack_vrefbuffer_new and msgpack_vrefbuffer_free 398 | * Add msgpack_sbuffer_new and msgpack_sbuffer_free 399 | * Add msgpack_unpacker_next and msgpack_unpack_next 400 | * msgpack::unpack returns void 401 | * Add MSGPACK_VERSION{,_MAJOR,_MINOR} macros to check header version 402 | * Add msgpack_version{,_major,_minor} functions to check library version 403 | * ./configure supports --disable-cxx option not to build C++ API 404 | 405 | # 2010-04-29 version 0.5.0: 406 | 407 | * msgpack_object_type is changed. MSGPACK_OBJECT_NIL is now 0x00. 408 | * New safe streaming deserializer API. 409 | * Add object::object(const T&) and object::operator=(const T&) 410 | * Add operator==(object, const T&) 411 | * MSGPACK_DEFINE macro defines msgpack_object(object* obj, zone* z) 412 | * C++ programs doesn't need to link "msgpackc" library. 413 | -------------------------------------------------------------------------------- /COPYING: -------------------------------------------------------------------------------- 1 | Copyright (C) 2008-2015 FURUHASHI Sadayuki 2 | 3 | Distributed under the Boost Software License, Version 1.0. 4 | (See accompanying file LICENSE_1_0.txt or copy at 5 | http://www.boost.org/LICENSE_1_0.txt) 6 | -------------------------------------------------------------------------------- /LICENSE_1_0.txt: -------------------------------------------------------------------------------- 1 | Boost Software License - Version 1.0 - August 17th, 2003 2 | 3 | Permission is hereby granted, free of charge, to any person or organization 4 | obtaining a copy of the software and accompanying documentation covered by 5 | this license (the "Software") to use, reproduce, display, distribute, 6 | execute, and transmit the Software, and to prepare derivative works of the 7 | Software, and to permit third-parties to whom the Software is furnished to 8 | do so, all subject to the following: 9 | 10 | The copyright notices in the Software and this entire statement, including 11 | the above license grant, this restriction and the following disclaimer, 12 | must be included in all copies of the Software, in whole or in part, and 13 | all derivative works of the Software, unless such copies or derivative 14 | works are solely in the form of machine-executable object code generated by 15 | a source language processor. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 20 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 21 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 22 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | DEALINGS IN THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | This product bundles Boost Predef and Boost Preprocessor. 2 | They are distributed under the Boost Software License, Version 1.0. 3 | (See accompanying file LICENSE_1_0.txt or copy at 4 | http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | For details, see the following files: 7 | 8 | external/boost/predef 9 | include/msgpack/predef.h 10 | include/msgpack/predef/* 11 | 12 | external/boost/preprocessor 13 | include/msgpack/preprocessor.hpp 14 | include/msgpack/preprocessor/* 15 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | `msgpack` for C/C++ 2 | =================== 3 | 4 | It's like JSON but smaller and faster. 5 | 6 | Overview 7 | -------- 8 | 9 | [MessagePack](http://msgpack.org/) is an efficient binary serialization 10 | format, which lets you exchange data among multiple languages like JSON, 11 | except that it's faster and smaller. Small integers are encoded into a 12 | single byte and short strings require only one extra byte in 13 | addition to the strings themselves. 14 | 15 | ### C Library 16 | 17 | See [c_master](https://github.com/msgpack/msgpack-c/tree/c_master) 18 | 19 | ### C++ Library 20 | 21 | See [cpp_master](https://github.com/msgpack/msgpack-c/tree/cpp_master) 22 | 23 | ### Documentation 24 | 25 | You can get additional information including the tutorial on the 26 | [wiki](https://github.com/msgpack/msgpack-c/wiki). 27 | 28 | Contributing 29 | ------------ 30 | 31 | `msgpack-c` is developed on GitHub at [msgpack/msgpack-c](https://github.com/msgpack/msgpack-c). 32 | To report an issue or send a pull request, use the 33 | [issue tracker](https://github.com/msgpack/msgpack-c/issues). 34 | 35 | Here's the list of [great contributors](https://github.com/msgpack/msgpack-c/graphs/contributors). 36 | 37 | License 38 | ------- 39 | 40 | `msgpack-c` is licensed under the Boost Software License, Version 1.0. See 41 | the [`LICENSE_1_0.txt`](./LICENSE_1_0.txt) file for details. 42 | --------------------------------------------------------------------------------