Skip to content

BDE 3.0 Release Notes

Oleg Subbotin edited this page Jun 6, 2017 · 1 revision

BDE 3.0: Open-Source Release

BDE 3.0 includes a large body of code marked with a notice at the top indicating the source code does not conform to current BDE coding guidelines. This source-code is generally of high-quality, and is used in production at Bloomberg, but predates the BDE coding standards -- some of it, by many years. We expect some of these new packages to be of interest to open-source users, while others we expect will not be. For example the BTL library (BDE Transport Library) predates more full-featured open-source libraries (e.g., Boost asio, libuv), and we expect it would not interest developers starting new projects. We are distributing all of this code with an open-source license to support the future open-source release of existing software that depends on these libraries.

The following table describes the purpose of each of the new packages in BDE 3.0, and whether we feel it would of interest to a new C++ project:

Status

Package Status Purpose
ball Recommended Logging
balst Recommended Stacktraces (debugging)
baltzo Recommended Olson (tz) timezone information
bdlcc Recommended Specialized thread-safe containers
bdlc Recommended Specialized containers
bdlb Recommended Assorted utility classes (bit-utilities, variant, nullable-value, etc)
bdlde Recommended Widely used encodings (e.g., base64, md5, utf-8, utf-16)
bdlmt Recommended Thread pools and time-based event scheduling
bdlsb Recommended std::streambuf imps. for user-supplied memory
     |                 |

balm | Incomplete | Metrics gathering [1] balber | Incomplete | Messaging, BER [2] baljsn | Incomplete | Messaging, JSON [2] balxml | Incomplete | Messaging, XML [2] bdlat | Incomplete | Messaging types [2] | | balb | Not Recommended | Process control via named pipes bslmt | Not Recommended | C++03-compatible platform-independent thread library [3] btl* | Not Recommended | Network transport library [4]

Legend

  • Recommended : A package we recommend.

  • Incomplete : Will be useful after open-source release of additional, related software (e.g., additional components, code generators)

  • Not Recommended: A package not recommended for new development as there is a more standard, or more fully featured open-source alternative.

Footnotes

[1] For now, users must supply their own publication code; an open-source publication component planned.

[2] The messaging sub-system will be awkward to use until we open-source the associated code generator.

[3] We recommend new software written with C++11/14 use equivalent types introduced in the C++ standard.

[4] Useful: btls_leakybucket, btls_ratelimiter, and btls_reservationguard support general, rate-based resource management.