During Q1 2024, I’ve been working in the following areas: Boost.Unordered Reviewed Braden’s work on optimization of emplace(k, v) calls (PR#230, released in Boost 1.85.0). With this optimization, statements such as: m.emplace(0,"zero"); won’t create a temporary (0, "zero") value if the element with key 0 already exists. This is particularly relevant when dynamic memory allocation is involved (for instance, if mapped_type is std::string in the example above). The implementation of this f...
In the past few months, I’ve been busy getting up to speed on the slate of proposed-for-Boost libraries: Boost.Buffers and Boost.Http.Proto. The first real task was getting the CI setup for that and we chose to use an in-house solution. I was never really an expert in GitHub Actions nor CI so there was a definite learning curve in how to debug CI issues and what’s an effective use of time versus not. But more importantly I was able to discern what was and what wasn’t important to automate i...
Client-side SQL formatting A new grand feature has arrived to Boost.MySQL’s city: client-side SQL formatting. If you’ve worked with MySQL C API before, you may be familiar with mysql_real_escape_string: a function that takes a string and escapes it, enabling the user to compose queries dynamically without the risk of running into SQL injection vulnerabilities. We didn’t have a matching function in Boost.MySQL… until now. mysql_real_escape_string is a pretty low-level construct. While we ha...
Added a Contributors FAQ to the Contributor Guide, then updated it with a series of questions and answers on Security - based on what I thought many new developers might ask about Security. Added a Licensing section covering questions on the BSL, migrating and updating a legacy topic. This FAQ currently has 35 questions and answers. Reviewed and provided detailed feedback on the documentation for the candidate Boost Parsing library. Migrated an In-memoriam topic f...
Here’s an overview of some projects I have been working on the last few months. Boost Downloads Set up an AWS Cloudfront CDN at archives.boost.io to host the Boost releases during an outage. JFrog is planning to cancel the account, and the outage was an unintentional (or intentional) warning. Extensive experimentation using a Fastly CDN in conjunction with JFrog, however they are sending S3 redirects which prevent this configuration. Installed another origin server and a load balancer. Debu...