Published:

Jarle Aase

Monthly update, August 2023

bookmark 1 min read

Open Source projects

nsblast

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.

restc-cpp

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.

Next-app

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.