Monthly update, August 2023
Open Source projects
Massively scalable DNS server
Following last month's research into gRPC and C++, I re-factored the DB replication from the primary server to it's followers to use gRPC callbacks. Then I finished the two-way replication logic and wrote a functional test that deploy a nsblast cluster with docker-compose and verify that the replication works.
One feature I have talked a lot about - the ability to ask a REST request to wait until a change is replicated to all the active followers before it returns the result - was finished. This was actually one of my motivations to write the server in the first place.
The magic that takes the pain out of accessing JSON API's from C++
I went over the CI pipeline and got Ubuntu Bionic working. I had some problems using it with docker previously. After upgrading all the build VM's to Debian Bookworm, I was able to run the container image with Bionic and to fix some issues with the build for that OS release.
I also merged a PR to handle columns in the target path.
Finally, I removed deprecated OS release from the CI pipeline. No need to test the code against deprecated Linux releases.
The Glad Project
A handful of useful algorithms in C++ 20
Added a generic AsyncWaitFor template class. It allow any number of asio "clients" to wait on it for some condition to become true.
I needed this in nsblast for the waiting feature mentioned above, and decided to put the implementation of the async completion templates in Glad since it's a pretty general concept.
GTD application for desktop and mobile
Created a new github repository for Next-App - my upcoming Getting Things Done application. This project will take most of the time I can devote to Open Source projects in the foreseeable future, after nsblast is released in Beta.