1Libbson-1.8.1 2============= 3 4It is my pleasure to announce libbson-1.8.1. This release removes a syntax 5error in the configure script that affects some shells, and fixes the encoding 6of this NEWS file. 7 8Thanks to everyone who contributed to the development of this release. 9 10 * A. Jesse Jiryu Davis 11 * Jeremy Mikola 12 13Peace, 14 15 A. Jesse Jiryu Davis 16 17 18Libbson-1.8.0 19============= 20 21It is my pleasure to announce Libbson-1.8.0. 22 23New features and bugfixes: 24 25 * Make symbols bson_get_major_version, bson_get_minor_version, 26 bson_get_micro_version, bson_get_version, and bson_check_version available 27 to C++ programs. 28 * New CMake option ENABLE_MAINTAINER_FLAGS. 29 * Crash iterating over invalid code with scope. 30 31Thanks to everyone who contributed to the development of this release. 32 33 * A. Jesse Jiryu Davis 34 * Hannes Magnusson 35 * Jeremy Mikola 36 * Kevin Albertson 37 * Michael Kuhn 38 39Peace, 40 41 A. Jesse Jiryu Davis 42 43 44Libbson-1.7.0 45============= 46 47 * Changes to JSON encoding and decoding: 48 * New functions bson_as_canonical_extended_json and 49 bson_as_relaxed_extended_json convert BSON to canonical and relaxed 50 extended JSON according to MongoDB Extended JSON Spec. 51 Output for the existing bson_as_json function has not been changed. 52 * When parsing JSON type wrappers like "$timestamp", any missing or extra 53 keys are an error. 54 * The JSON format for BSON regular expressions is now "$regularExpression": 55 {"pattern": "...", "options": "..."}. The old format {"$regex": "...", 56 "$options": "..."} is still parsed. 57 * The JSON format for BSON binary elements is now "$binary": {"base64": 58 "...", "subType": "..."}. The old format {"$binary": "...", "$type": 59 "..."} is still parsed. 60 * BSON dates can be parsed from "$date" as an ISO8601 date or "$numberLong" 61 as milliseconds since the epoch: "t": {"$date": {"$numberLong": "1234"}}. 62 Dates can no longer be formatted as raw integers. bson_as_json writes a 63 BSON date after 1970 as "$date" with an ISO8601 string, and dates before 64 1970 as negative milliseconds wrapped in "$numberLong". 65 bson_as_canonical_extended_json always writes dates with "$numberLong". 66 bson_as_relaxed_extended_json always writes dates with "$date". 67 * The non-numbers NaN, Infinity, and -Infinity are now recognized (regardless 68 of case) when parsing JSON. 69 * CMake build now installs .pc files for programs that link to libbson using 70 pkg-config. Both the CMake and Autotools build systems now install .cmake 71 files for programs that link to libbson using CMake. Linking to libbson 72 statically or dynamically is now much more convenient. 73 * New CMake option, "ENABLE_STATIC", defaults to ON. 74 * Minimum required CMake version has been increased to 3.1. 75 * CMake remains experimental on non-Windows platforms and issues a warning now 76 * New functions 77 * bson_strcasecmp, a portable equivalent of strcasecmp. 78 * bson_iter_as_double, cast the current value to double. 79 * bson_iter_init_from_data, creates an iterator from BSON string. 80 * bson_validate_with_error, checks a document like bson_validate does but 81 also reports which key was invalid 82 * New convenience macros 83 * BSON_ITER_HOLDS_INT, checks if iterator holds int32 or int64 84 * BSON_ITER_HOLDS_NUMBER, checks if iterator holds int32, int64 or double 85 * Raised BSON recursion limit to 200 86 87 88Libbson-1.6.0 89============= 90 91It is my pleasure to announce libbson-1.6.0. 92 93New features and bug fixes: 94 95 * Use jsonsl instead of libyajl as our JSON parsing library, parse JSON more 96 strictly, fix minor parsing bugs. 97 * Extended JSON documents like '{"$code": "...", "$scope": {}}' are now parsed 98 into BSON "code" elements. 99 * ISO8601 dates now allow years from 0000 to 9999 inclusive. Before, years 100 before 1970 were prohibited. 101 * BSON floats and ints are now distinguished in JSON output. 102 * The library is now built and continuously tested with MinGW-W64 on Windows. 103 * The documentation is ported from Mallard XML to ReStructured Text, the 104 HTML documentation is restyled, and numerous man page syntax errors fixed. 105 * All public functions now have the __cdecl calling convention on Windows. 106 107Thanks to everyone who contributed to the development of this release. 108 109 * A. Jesse Jiryu Davis 110 * Hannes Magnusson 111 * Aleksander Melnikov 112 * Remi Collet 113 114Peace, 115 116 A. Jesse Jiryu Davis 117 118 119libbson-1.5.5 120============= 121 122No change since 1.5.4; released to keep pace with libmongoc's version. 123 124-- A. Jesse Jiryu Davis 125 126 127Libbson-1.5.4 128============= 129 130No change since 1.5.3; released to keep pace with libmongoc's version. 131 132-- A. Jesse Jiryu Davis 133 134 135Libbson-1.5.3 136============= 137 138No change since 1.5.2; released to keep pace with libmongoc's version. 139 140-- A. Jesse Jiryu Davis 141 142 143Libbson-1.5.2 144============= 145 146This is a patch release that fixes a build error with MinGW on Windows. 147 148 149Libbson-1.5.1 150============= 151 152No change since 1.5.0; released to keep pace with libmongoc's version. 153 154-- A. Jesse Jiryu Davis 155 156 157Libbson-1.5.2 158============= 159 160It is my pleasure to announce Libbson-1.5.2. 161 162New bug fixes: 163 164 * CDRIVER-1982 fix ifdef for strerror_s with mingw. 165 166Thanks to everyone who contributed to the development of this release. 167 168 * A. Jesse Jiryu Davis 169 170Peace, 171 172 Hannes Magnusson 173 174 175Libbson-1.5.1 176============= 177 178No change since 1.5.0; released to keep pace with libmongoc's version. 179 180-- A. Jesse Jiryu Davis 181 182 183Libbson-1.5.0 184============= 185 186It is my pleasure to announce Libbson-1.5.0. 187 188New features and bug fixes: 189 190 * New BSON Type, Decimal128 (bson_decimal128_t) along with the following 191 new functions and helpers: 192 * bson_decimal128_to_string() 193 * bson_decimal128_from_string() 194 * bson_iter_decimal128() 195 * bson_iter_overwrite_decimal128() 196 * BSON_ITER_HOLDS_DECIMAL128() 197 * bson_append_decimal128() 198 * BSON_APPEND_DECIMAL128() 199 * BCON_DECIMAL128() 200 See the documentations for further details. 201 * bson_validate and bson_iter_next now validate that BSON boolean values are 202 0 or 1. Before, any non-zero value was considered true. 203 * bson_append_code_with_scope now preserves the "code with scope" type 204 if scope is an empty, non-NULL BSON document. 205 * BSON "code" and "code with scope" types are properly translated to and from 206 JSON of the form '{"$code": "...", "$scope": {...}}'. 207 * bson_json_reader functions now always validate UTF-8. 208 * JSON parsing now preserves integer width. 209 * bson_strtoll now matches stroll: it detects range errors, and when 210 parsing octal it stops at non-octal digits and returns what it parsed 211 instead of setting errno. 212 * New flag BSON_VALIDATE_EMPTY_KEYS causes bson_validate to fail if a document 213 contains zero-length field names. 214 * The configure option "--enable-hardening" had had no effect. It is removed 215 in favor of system-wide compiler configuration. 216 217Thanks to everyone who contributed to the development of this release. 218 219 * Hannes Magnusson 220 * A. Jesse Jiryu Davis 221 * Fiona Rowan 222 * Brian Samek 223 224Peace, 225 226 A. Jesse Jiryu Davis 227 228 229Libbson-1.4.1 230============= 231 232This release improves the HTML documentation's Makefile. 233 234-- A. Jesse Jiryu Davis 235 236 237Libbson-1.4.0 238============= 239 240It is my pleasure to announce Libbson-1.4.0. 241 242New features and bug fixes: 243 244 * bson_reader_reset seeks to the beginning of a BSON buffer. 245 * bson_steal efficiently transfers contents from one bson_t to another. 246 * Fix Windows compile error with BSON_EXTRA_ALIGN disabled. 247 * Potential buffer overrun in bson_strndup. 248 * bson_oid_to_string optimization for MS Visual Studio 249 * bson_oid_is_valid accepts uppercase hex characters. 250 * bson_json_reader_read aborted on some invalid Extended JSON documents. 251 * All man page names now begin with "bson_" to avoid install conflicts. 252 * Error messages sometimes truncated at 63 chars. 253 254This release tentatively supports the new BSON decimal type when built with 255"./configure --enable-experimental-features", or with 256"cmake -DENABLE_EXPERIMENTAL_FEATURES=ON", but this feature may change 257between now and libbson 1.5. 258 259Thanks to everyone who contributed to the development of this release. 260 261 * A. Jesse Jiryu Davis 262 * Hannes Magnusson 263 * Jeremy Mikola 264 * David Hatch 265 * Ian Boros 266 * Fiona Rowan 267 * Shane Harvey 268 * Runar Buvik 269 * Raymond Jacobson 270 * ReadmeCritic 271 * Mike Lloyd 272 * Derick Rethans 273 * Maverick Chan 274 275Peace, 276 277 A. Jesse Jiryu Davis 278 279Libbson-1.3.5 280============= 281 282No change since 1.3.4; released to keep pace with libmongoc's version. 283 284-- A. Jesse Jiryu Davis 285 286 287Libbson-1.3.4 288============= 289 290No change since 1.3.3; released to keep pace with libmongoc's version. 291 292-- A. Jesse Jiryu Davis 293 294 295Libbson-1.3.3 296============= 297 298No change since 1.3.2; released to keep pace with libmongoc's version. 299 300-- A. Jesse Jiryu Davis 301 302 303Libbson-1.3.2 304============= 305 306This is a patch release with a fix for the build system: 307 308 * man pages couldn't be built from a distribution tarball. 309 310Peace, 311 312 A. Jesse Jiryu Davis 313 314 315Libbson-1.3.1 316============= 317 318It is my pleasure to announce Libbson-1.3.1. This is a bugfix release: 319 320 * bson_strnlen is off by one on Windows. 321 * BSON_HAVE_STRNLEN config check used incorrectly. 322 * Incompatibility with older CMake versions. 323 * Wrong-sized allocation in bson_json_reader_new. 324 325Thanks to everyone who contributed to the development of this release. 326 327 * A. Jesse Jiryu Davis 328 * Alex Bishop 329 * Jeroen Ooms 330 331Peace, 332 333 A. Jesse Jiryu Davis 334 335 336Libbson-1.3.0 337============= 338 339It is my pleasure to announce to you the release of Libbson-1.3.0. Since the 340release candidate 1.3.0-rc0, the only changes have been fixes for compiler 341warnings and errors on various platforms. 342 343All changes since the previous stable release, 1.2.1: 344 345 * Fix potential crash in bson_strncpy on Windows. 346 * Parse DBRefs correctly from JSON. 347 * CMake option to disable building tests: "cmake -DENABLE_TESTS:BOOL=OFF". 348 * Refactor the build system to declare library version in one place. 349 * Fix compiler warnings and errors, especially with Visual Studio 2015 350 and IBM XL C. 351 * Combine environment's CFLAGS with configure options when building. 352 353Thanks to everyone who contributed to the development of this release. 354 355 * A. Jesse Jiryu Davis 356 * Hannes Magnusson 357 * Mark Benvenuto 358 * Petr Písař 359 * xpol 360 * Jose Sebastian Battig 361 * Jeroen Ooms 362 363Peace, 364 365 A. Jesse Jiryu Davis 366 367 368Libbson-1.3.0-rc0 369================= 370 371It is my pleasure to announce to you first release candidate of Libbson-1.3.0. 372 373Changes since 1.3.0-beta0: 374 375 * Parse DBRefs correctly from JSON. 376 * CMake option to disable building tests: "cmake -DENABLE_TESTS:BOOL=OFF". 377 * Fix build warnings on some platforms, and refactor the build system. 378 379Thanks to everyone who contributed to the development of this release. 380 381 * A. Jesse Jiryu Davis 382 * Hannes Magnusson 383 * Jose Sebastian Battig 384 385Peace, 386 387 A. Jesse Jiryu Davis 388 389 390Libbson-1.3.0-beta0 391=================== 392 393It is my pleasure to announce to you the beta release of Libbson-1.3.0. 394 395Changes since the previous stable release, 1.2.1: 396 397 * Fix potential crash in bson_strncpy on Windows. 398 * Fix compiler warnings and errors, especially with Visual Studio 2015 399 and IBM XL C. 400 * Combine environment's CFLAGS with configure options when building. 401 402Thanks to everyone who contributed to the development of this release. 403 404 * Hannes Magnusson 405 * A. Jesse Jiryu Davis 406 * Jeroen Ooms 407 * Petr Písař 408 * xpol 409 410Peace, 411 412 A. Jesse Jiryu Davis 413 414 415Libbson-1.2.1 416============= 417 418It is my pleasure to announce to you the release of Libbson-1.2.1. 419 420Changes since the previous stable release, 1.2.0 are solely in the content 421and format of documentation. 422 423Peace, 424 425 A. Jesse Jiryu Davis 426 427 428Libbson-1.2.0 429============= 430 431It is my pleasure to announce to you the release of Libbson-1.2.0. 432 433Changes since the previous stable release, 1.1.11: 434 435 * Add bson_mem_restore_vtable(), the inverse of bson_mem_set_vtable(). 436 * Enable runtime asserts in release build. 437 * Fixed compiler warnings and build failures on various platforms. 438 * Improvements to the formatting and contents of the documentation. 439 440Thanks to everyone who contributed to the development of this release. 441 442 * A. Jesse Jiryu Davis 443 * Hannes Magnusson 444 * Jason Carey 445 * Kyle Suarez 446 * Derick Rethans 447 * David Hatch 448 449Peace, 450 451 A. Jesse Jiryu Davis 452 453 454Libbson 1.2.0-rc0 455================== 456 457It is my pleasure to announce to you the release candidate of Libbson-1.2.0. 458 459Changes: 460 461 * Merge changes from 1.1.11. 462 * Enable runtime asserts in release build. 463 464Thanks to everyone who contributed to the development of this release candidate. 465 466 * A. Jesse Jiryu Davis 467 * Hannes Magnusson 468 * Kyle Suarez 469 * Jason Carey 470 471-- A. Jesse Jiryu Davis 472 473 474Libbson 1.2.0-beta 475================== 476 477It is my pleasure to announce to you the beta of Libbson-1.2.0. 478 479This release adds the bson_mem_restore_vtable() function to undo the effect 480of bson_mem_set_vtable(). 481 482Thanks to everyone who contributed to the development of this beta. 483 484 * Jason Carey 485 * Hannes Magnusson 486 487 488Libbson-1.1.11 489============== 490 491It is my pleasure to announce to you the release of Libbson-1.1.11. 492 493This is a patch release with improvements to the documentation: 494 495 * Document bson streaming reads with an example, 496 bson-streaming-reader.c. 497 * Document callback function types bson_reader_destroy_func_t and 498 bson_reader_read_func_t. 499 500Thanks to Kyle Suarez for his contributions to this version of Libbson. 501 502-- A. Jesse Jiryu Davis 503 504 505Libbson-1.1.10 506============== 507 508No change since 1.1.9; released to keep pace with libmongoc's version. 509 510-- A. Jesse Jiryu Davis 511 512 513Libbson-1.1.9 514============= 515 516This is a patch release with a fix for the build system: 517 518 * "./configure --enable-coverage" works now. 519 520-- A. Jesse Jiryu Davis 521 522 523Libbson-1.1.8 524============= 525 526No change since 1.1.7; released to keep pace with libmongoc's version. 527 528-- A. Jesse Jiryu Davis 529 530 531Libbson-1.1.7 532============= 533 534It is my pleasure to announce to you the release of Libbson-1.1.7. 535 536This is a patch release with bug fixes: 537 538 * Unchecked error in bson_utf8_escape_for_json caused unbounded memory growth 539 and a crash. 540 * Nicer floating-point formatting in bson_as_json. 541 * Link error with CMake on Mac. 542 543Thanks to everyone who contributed to this version of Libbson. 544 545 * A. Jesse Jiryu Davis 546 * Jason Carey 547 * Jeroen Ooms 548 * Hannes Magnusson 549 * Hendrik Dahlkamp 550 551-- A. Jesse Jiryu Davis 552 553 554Libbson-1.1.6 555============= 556 557No change since 1.1.5; released to keep pace with libmongoc's version. 558 559-- A. Jesse Jiryu Davis 560 561 562Libbson 1.1.5 563============= 564 565It is my pleasure to announce to you the release of Libbson-1.1.5. 566 567This is a patch release with small bug fixes: 568 569 * Fix link error "missing __sync_add_and_fetch_4" in GCC on i386 - 570 the functions bson_atomic_int_add and bson_atomic_int64_add are now 571 compiled and exported if needed in i386 mode 572 * Fix version check for GCC 5 and future versions of Clang 573 * Fix warnings and errors building on various platforms 574 575With this release, Libbson abandons the convention that odd-numbered patch 576versions indicate unstable releases. We switch to simple semantic versioning: 5771.1.5 is a stable release with bug fixes since 1.1.4. During subsequent 578development the version will be "1.1.6-dev". 579 580Thanks to everyone who contributed to this version of Libbson. 581 582 * A. Jesse Jiryu Davis 583 * Christian Hergert 584 * Jason Carey 585 * Hannes Magnusson 586 * Paul Melnikow 587 588-- A. Jesse Jiryu Davis 589 590Libbson 1.1.4 591============= 592 593It is my pleasure to announce to you the release of Libbson-1.1.4. 594 595This release is a minor patch release with one bug fix for bson_iter_timeval 596 597Thanks to everyone who contributed to the development of this release candidate for 598Libbson. 599 600 * Jason Carey 601 * A. Jesse Jiryu Davis 602 * Vladimir Zidar 603 604-- Jason Carey 605 606Libbson 1.1.2 607============= 608 609It is my pleasure to announce to you the release of Libbson-1.1.2. 610 611This release is a minor patch release with one bug fix for mingw. 612 613* sscanf_s doesn't exist for mingw. 614 615-- Jason Carey 616 617Libbson 1.1.0 618============= 619 620It is my pleasure to announce to you the release of Libbson-1.1.0. 621 622This release is a stable release with some ABI additions and bugfixes. 623 624The below changes include the changes mentioned in the rc0. 625 626ABI/API changes include: 627 * RC0 628 * Deprecation of bson_copy_to_excluding 629 * Addition of bson_copy_to_excluding_noinit 630 * Removal of MIN, MAX and ABS macros in favor of BSON_MIN, BSON_MAX and 631 BSON_ABS. Note this is a breaking source level change if you relied on 632 these from bson.h. Also note that this is not a breaking ABI change. 633 * Addition of BSON_ERROR_BUFFER_SIZE macro 634 635Other changes include: 636 * RC0 637 * Addition of a versioned ABI for the libbson shared library 638 * fixed bson_get_monotonic_time fallback when a system monotonic clock can not 639 be found. Formerly failed to compile with an incorrect call to 640 bson_gettimeofday 641 * Allow the "dbref" convention in bson_validate when BSON_VALIDATE_DOLLAR_KEYS 642 is present 643 * Support for ISO-8601 or $numberLong dates in bson <-> json parsing 644 * Quiet various compiler warnings 645 646Thanks to everyone who contributed to the development of this release candidate for 647Libbson. 648 649 * Adam Midvidy 650 * Christian Hergert 651 * Daniel Colchete 652 * Ivan Suvorov 653 * Hannes Magnusson 654 * Jason Carey 655 * Jérôme Lebel 656 * Samantha Ritter 657 658-- Jason Carey 659 660Libbson 1.1.0-rc0 661================= 662 663It is my pleasure to announce to you the release of Libbson-1.1.0-rc0. 664 665This release is a release candidate release with some ABI additions and bugfixes. 666 667ABI changes include: 668 * Deprecation of bson_copy_to_excluding 669 * Addition of bson_copy_to_excluding_noinit 670 671Other changes include: 672 * Addition of a versioned ABI for the libbson shared library 673 * fixed bson_get_monotonic_time fallback when a system monotonic clock can not 674 be found. Formerly failed to compile with an incorrect call to 675 bson_gettimeofday 676 * Allow the "dbref" convention in bson_validate when BSON_VALIDATE_DOLLAR_KEYS 677 is present 678 * Support for ISO-8601 or $numberLong dates in bson <-> json parsing 679 * Quiet various compiler warnings 680 681Thanks to everyone who contributed to the development of this release candidate for 682Libbson. 683 684 * Adam Midvidy 685 * Christian Hergert 686 * Daniel Colchete 687 * Ivan Suvorov 688 * Jason Carey 689 * Jérôme Lebel 690 691-- Jason Carey 692 693Libbson 1.0.2 694============= 695 696It is my pleasure to announce to you the release of Libbson-1.0.2. 697 698This release is a minor point release with no ABI changes and mostly small 699bugfixes. 700 701Changes include: 702 * bson_init_from_json supports top level arrays 703 * fixes for bson_strerror_r 704 * fix for timeouts on OS X 705 * house cleaning for various integer types 706 707Thanks to everyone who contributed to the development of this point release for 708Libbson. 709 710 * Adam Midvidy 711 * Christian Hergert 712 * Jason Carey 713 * Jérôme Lebel 714 * Tyler Brock 715 716-- Jason Carey 717 718Libbson 1.0.0 719============= 720 721It is my very distinct pleasure to announce to you the release of 722Libbson-1.0.0! 723 724This is the culmination of just over a year of work and could not have been 725done without the help of our wonderful community. 726 727Thanks to everyone who contributed to the development of Libbson! 728 729 * Christian Hergert 730 * Jason Carey 731 * Jose Sebastian Battig 732 * Maxim Zakharov 733 * Jérôme Lebel 734 * Itay Neeman 735 * Mike Manilone 736 * Michael Kuhn 737 * Kyle Suarez 738 * Josh Blum 739 * Jason Choy 740 * mntmnt7@gmail.com 741 * Tyler Brock 742 * Stefan Kaes 743 * Paul Melnikow 744 * Matt Cotter 745 * Gary J. Murakami 746 * Toon Schoenmakers 747 * Máximo Cuadros 748 * Michael Whittaker 749 * Kota Yamaguchi 750 * Justin Case 751 * Jeff Yemin 752 * Ivan Suvorov 753 * Hannes Magnusson 754 * Eric Daniels 755 * Anil Kumar 756 * A. Jesse Jiryu Davis 757 758Happy Hacking! 759 760-- Christian Hergert 761 762 763Libbson 0.98.0 764============== 765 766One more step closer to a 1.0! 767 768This release has a few fixes as we near the finish line of a 1.0 release. 769We have bumped the version to 0.98.0 to sync up with MongoDB C driver, which 770is the primary consumer of this library. 771 772This release includes a new memory callback vtable to help in embedding 773situations that have their own custom allocator such as various language 774runtimes. 775 776A few compilation fixes for various C++ compilers have also been included. 777 778A special thanks to: 779 780 * Itay Neeman 781 * Michael Whittaker 782 783Happy Hacking! 784 785-- Christian 786 787 788Libbson 0.8.4 789============= 790 791Another incremental release with a couple of new functions and bugfixes. 792 793In this release you will find the following changes: 794 795 * Alignment fixes for Solaris Studio C compiler. 796 * RPM and Debian packaging helpers. 797 * bson_gettimeofday() has dropped the deprecated timezone field used 798 when calling posix gettimeofday(). This eases portability concerns. 799 It is technically an ABI break, but since the field was never set, 800 in reality it shouldn't be an issue. 801 * Multi-byte optimizations for bson_oid_to_string() have been disabled 802 on non-x86 based platforms. This should aid in architecture portability. 803 * The JSON parser can now support $numberLong. 804 * bson_ascii_strtoll() has been added, which is a portable strtoll() 805 implementation. This is primarily useful for Windows users and is 806 used by the JSON parser. 807 * A bug was fixed in bson_iter_find_descendent() where the wrong field 808 could be matched if it's prefix matched the query. 809 * bson_array_as_json() has been added to convert a bson_t as a top-level 810 array. 811 812Thanks to: 813 * Kyle Suarez 814 * Itay Neeman 815 816Happy Hacking! 817 818 819Libbson 0.8.2 820============= 821 822A bugfix release is here as a follow up to 0.8.0. 823 824In this release you will find the following changes: 825 826 * A fix for BCON when used from C++. 827 * Change bson_next_power_of_two() to accept size_t. This should not be 828 an ABI break since it is static inline. 829 830Happy Hacking! 831 832 833Libbson 0.8.0 834============= 835 836It's that time again, time for another Libbson release! 837 838This cycle includes much, much more documentation for your perusing. There is 839much more cross-referencing and structure for your navigation pleasure. 840 841We've improved support for Libbson on a few more exotic platforms. SPARC 842support is looking pretty good these days. 843 844You'll also find some new examples in this release to help you get started a 845bit faster. If there is something you'd like to see, just ask! 846 847There are a few ABI breaks this cycle, as we are well on the road to a 1.0 and 848would like things as clean as possible. I anticipate a few more during the next 849couple of cycles, but we will try to keep them to a minimum. With that said, 850you *WILL* need to recompile your application against 0.8.0. 851 852Happy Hacking! 853 854 855Libbson 0.6.8 856============= 857 858Quickly following up on the 0.6.6 release is 0.6.8. This release contains 859a couple of bugfixes and more support for older architectures. 860 861On big-endian systems, bson_append_date_time() was not properly converting 862to little-endian. This is now fixed. 863 864We've added support for Sun Pro C Compiler on Solaris 10 and 11. This includes 865support for SPARC systems as well as x86_64. In particular, intrinsics were 866added for the Solaris/SPARC/SunProC combination. If you are running SunProC 867on a non-Solaris platform, a fallback path will be used which is slower than 868native support for atomics. Additionally, bson_gettimeofday() does not fully 869support timezones under SunProC as struct timezone is not defined. 870 871Libbson will now check for GLibc 2.19 to remove various warnings with both 872_GNU_SOURCE and _BSD_SOURCE defined. 873 874Happy Hacking! 875 876 877Libbson 0.6.6 878============= 879 880Another release for your hacking pleasure! 881 882First off, note that there are two ABI breaks as part of this release. We 883felt they were important as they will help us stablize towards a 1.0 release. 884It is recommended that you recompile against this version of libbson. 885 886Lots of small fixes went into this release to help get things building better 887on various platforms. Windows support should be improved and many warnings have 888been cleaned up. 889 890The signature of bson_realloc_func has changed to allow for context to be 891provided. This should help in situations where a pointer to the memory pool is 892required. 893 894bson_destroy_with_steal() has been added so that you can steal a buffer instead 895of freeing it when bson_destroy() is called. 896 897bson_new_from_buffer() has been added so that you can provide your own realloc 898function to manage the underlying buffer. This will be useful for bindings that 899want to integrate their memory manager for bson documents. 900 901bson_value_t is a new container type that can hold any bson type. 902 903I'd like to thank everyone who contributed to this release. 904 905 Gary Murakami 906 Jason Carey 907 Jose Sebastian Battig 908 Máximo Cuadros 909 Paul Melnikow 910 Stefan Kaes 911 912Happy hacking! 913 914Libbson 0.6.4 915============= 916 917This is just a followup release of libbson as we work towards stablizing for 918the new mongo-c-driver release. In fact, it only includes build work and a 919new macro, bson_clear(). 920 921Happy hacking! 922 923 924Libbson 0.6.2 925============= 926 927A new Libbson release is already here as a follow up to the 0.6.0 release. 928 929This release includes a few build and installation fixes. In particular, 930 931 * Windows build fixes 932 * CMake build fixes 933 * C++ build fixes. 934 935The monotonic clock is now more accurately calculated on Windows as well. 936If you'd like to build on Windows, check out the section in README.md for 937information on how to do so. 938 939Happy hacking! 940 941 942Libbson 0.6.0 943============= 944 945Many changes have gone into this release! 946 947TL;DR 948 949 * C99 types (from C89). 950 * JSON parsing. 951 * Lots of Operating System support, including Windows. 952 * Parallel Test Suite. 953 * Revamped build system. 954 * A couple ABI breaks. 955 956First off, 0.6.0 has gone through a significant amount of build system cleanup. 957This should simplify using libbson as a submodule for those that wish to do so. 958For example, the mongo-c-driver now does this using autotools. 959 960Windows Vista and higher is now supported as a build target through the use of 961cmake. See README.md for the instructions. Other platforms should continue to 962use autotools. 963 964The test suite has been improved and more tests added. We now generate random 965seeds on every run to help catch more errors with additional fuzzing passes. 966By default, the test suite will run all tests in parallel with subprocesses. 967This should speed up execution of `make test' for contributors. 968 969bson_string_t went through an ABI break to support power-of-two growth. 970 971JSON parsing has been added through the bson_json_reader_t type. You can also 972now use bson_init_from_json() for a simplified interface. 973 974Types were revamped to appear to be using C99 types. If C99 types are 975available, they will be used. If not, they will be emulated. This means you 976can just go on using uint64_t and similar. We even use bool now. 977 978Many functions have been made portable to deal with inconsistencies with Win32. 979 980This release has been tested on the following operating systems: 981 982 * RedHat Enterprise 5, 6, and 7 beta. 983 * CentOS 6.5 984 * Ubuntu 12.04 LTS 985 * Fedora 20 986 * Windows 7 987 * FreeBSD 10 988 * DragonFly BSD 989 * Solaris 11 990 * SmartOS 991 * mingw64 992 993Thanks again and enjoy using libbson! 994 995Libbson 0.4.0 996============= 997 998This release includes a few bug fixes and copious documentation. Additionally, 999we improved our fuzz testing and found a couple issues in the process. It is 1000suggested that everyone upgrade their installations to 0.4.0. 1001 1002We have been busy adding a lot of documentation that we hope you will like. 1003Many `man' pages have been added for various API endpoints and structures. If 1004you use vim, remember that you can jump to the documentation with <shift>k 1005while on a symbol. 1006 1007Thanks and enjoy using libbson! 1008 1009Libbson 0.2.4 1010============= 1011 1012This release includes some more performance improvements and bug fixes. 1013 1014It contains an important fix for dealing with invalid string lengths that could 1015cause an integer overflow when checking to see if the string length fits within 1016the end of the buffer. 1017 1018There is preliminary support for Solaris on x86_64 and SPARC. 1019 1020Generating OIDs is now simpler with the use of bson_context_get_default(). This 1021function will return a thread-safe generic bson_context_t implementation. 1022Alternatively, you may pass NULL to bson_oid_init() for the context and the 1023default context is automatically used. 1024 1025The fuzz tests now use srand() with a 32-bit integer derived from /dev/urandom. 1026 1027Endianess conversions are now performed by __builtin_bswap*() functions when 1028available with the GCC compiler. 1029 1030Endianness conversions for the double type are now properly handled on 1031big-endian systems. 1032 1033bson_reinit() has been added to cleanup code that needs to destroy and then 1034initialize a bson_t. 1035 1036Validation of Code with Scope fields was absent from bson_validate(). This is 1037now supported. 1038 1039Libbson 0.2.2 1040============= 1041 1042This release includes a few performance improvements and bug fixes. 1043 1044The bson_t structure is more efficient when growing allocated buffers. 1045The use of memalign() was unnecessary for allocated bson_t structures 1046and has therefore been removed. Performance sensitive allocations now 1047use bson_malloc() instead of calloc() and initialize fields directly. 1048Stack alignment of bson_t is now enforced through compiler intrinsics. 1049 1050The unit tests can now support running inside of valgrind to check for 1051various memory leaks. Simply defing VALGRIND=valgrind when running 1052`make test`. 1053 1054Enjoy libbson-0.2.2! 1055 1056 1057Libbson 0.2.0 1058============= 1059 1060This is the initial release of Libbson. It has not yet reached API and ABI 1061maturity and is therefore subject to change without notice. Developers are 1062encouraged to start using Libbson as we journey on the road to 1.0, where ABI 1063stability will be guaranteed. 1064 1065Libbson is Apache 2.0 licensed so that it can be embedded in a multitude of 1066scenarios. This means that we try hard to not rely on external libraries. 1067Therefore, Libbson contains useful routines to help in portability as well 1068as BSON support. 1069 1070Libbson is the basis of a new MongoDB C driver that will follow shortly. 1071 1072Please see the doc/ directory for documentation on how to use Libbson. We 1073would love for you to contribute to Libbson, whether that is code, 1074documentation or packaging. 1075