The following is an overview of some projects I have been working on in the last few months: Boost.Beast Besides addressing user issues and typical bug fixes, here are a couple of contributions to the Boost.Beast project that I find interesting: Deprecating beast::ssl_stream and beast::flat_stream The beast::flat_stream was originally designed to consolidate buffer sequences into a single intermediate buffer, reducing the number of I/O operations required when writing these sequences to a...
Boost.Http.Proto This last quarter I worked primarily in the http-proto library, this time extending serialization to include chunking and zlib compression routines: deflate and gzip. This is the first time I’ve ever used zlib so it was definitely a learning experience but it’s given me valuable insights into how other libraries of this nature work. More importantly was reifying the application of such dynamic code with the existing code which supports many possible permutations. Serializ...
On C++20 modules and Boost This quarter started with exciting discussions about the possibility to introduce C++20 modules in Boost. I’ve dedicated a lot of time to study and reduce Boost.MySQL build times, so I promptly volunteered to conduct some investigation on the benefits and costs of modules. I’ve written two articles (available here and here) about this topic. They can be roughly summed up as: Module clean builds aren’t as fast as I’d expect, but partial re-builds are much faste...
Once again it has been a busy few months working on libraries in different stages of the boost lifecycle: Libraries for Proposal Decimal Decimal (https://github.com/cppalliance/decimal) is a ground-up implementation of the IEEE 754 Decimal Floating Point types in C++14, and is co-authored by Chris Kormanyos. This quarter we were pleased to release the first beta of the library which generated good discussion on the boost mailing list. One of the large takeaways was the desire for increased...
As we move through 2024, I have continued to focus on enhancing the capabilities of MrDocs, addressing key features and fixes to push towards the Minimum Viable Product (MVP). Additionally, I have been exploring profiling tools and developing benchmarking sets to optimize the performance of concurrent data structures in Boost. MrDocs Development: Aligned with MVP Strategy This quarter, my efforts on MrDocs have been centered around resolving crucial bugs and aligning features essential for ...