Code#
Code is always the most important news!👨🏻💻Continuing giving Linux some love!! 🐧
✅ SC::Async got an
io_uring
Linux backend!✅ SC::Async
epoll
backend got simplified ✅ SC::Async now tracks all active requests to mark them as free on a sudden close requests.
✅ SC::Async got all private implementation details hidden under a compiler firewall
✅ SC::Async can now use
SC::ThreadPool
to run some async ops✅ SC::Async
AsyncFileRead
/ AsyncFileWrite
are now fully async also on buffered files ✅ SC::ThreadPool has been added, to allow running tasks in background
✅ Got CI building and running tests on Windows, Linux and macOS (using Github Actions).
✅ The CI also enforces proper formatting through clang-format.
✅ Fixed a few UB and leaks signaled by gcc UBSAN and LSAN on Linux.
✅ Improved documentation for Building as an User vs Building as a contributor
Github Releases#
I have started creating Github releases tagged with each month.I'm not planning to do semantic versioning for now, just sticking to year-month release tagging.
Hacker News#
The Library has been posted to Hacker News bringing some visibility on the project for a few hours. The discussions / comments are also quite interesting, sparkled by the many opinionated and strong decisions / principles of the library.I've tried answering some of the posts, and it has been fun honestly 😁.
Some themes:
- You shouldn't be writing C++ libraries without the standard library / exceptions / smart pointers
- Qt / POCO exists and provides everything you need
- Writing Builds in C++ is not Sane
- You should implement all containers that exists in the STL
Github#
As of today, the Sane C++ Libraries has got 419 ⭐️ stars ⭐️ on Github
().
A big jump from the 187 stars of last month!
A big step has been due to the hacker news post, but in the subsequent weeks there has been a steady
and horganic increase, hopefully meaning that more people are finding something interesting in the project.
YouTube #
I have been producing 5 videos explaining some of the design decisions around the SC::Async
library, the addition of io_uring
to it, the creation of SC::ThreadPool and how it has been used to do proper Async File I/O also for buffered
files (that always act synchronously under most async APIs, excluding io_uring
...)
Next#
So what's next?I'm not really sure. One thing I would like to experiment with is a stb style wrapper for some of the libraries, to make them usable from C.
Thank you for reading this far!
Bye!👋🏼
Pagghiu