These are the C++ projects that I'm currently working on. At this time, the documentation serves as an early preview of the projects I'm working on, which I eventually intend to post on GitHub or Codeberg as open source (once I've decided which repository and license to use, and I'm sufficiently satisfied with the basic overall production-readiness of my libraries).
A specialized C++ class that stores an internet hostname with fully transparent and seamlessly-interchangeable support for UTF-8 and Punycode ("xn--" prefixed) hostnames that are internationalized internet domain names. The rhostname class can also use and produce hostnames in DNS RR format, which is a binary packet-level format that's used by DNS resolvers, DNS daemons, and DNS packet analysis software.
This class stores an std::string object alongside a separated EoL sequence it was terminated by (and a an easy way to determine if there was no EoL sequence). This is particularly useful for the edge case of reading an ASCII text file where the final line was not terminated by an EoL sequence, and it's important to know this (e.g., for ensuring checksum cross-reference accuracy, etc.).
This project will provide a C++ class that stores an eMail address, but with a variety of helper methods that can be used to easily parse and validate an eMail address, some of which will be useful for mail servers, eMail client software, etc.
An incomplete ring buffer was originally implemented in the rsocket class to satsify a specialized need, but has moved into this separate class to prevent unnecessary coding complexity and to provide what are not included in the standard C++ classes. (Other ring buffers were assessed, but didn't meed the specialized needs that this one provides, such as specialized add/remove methods that are programmed in an optimized fashion that doesn't side-step nor sacrifice thread safety.)
Although the rring class is optimailly specialized as a char buffer, it is designed with the expansion into other data types in mind, including int and long primitives, as well as structures and objects (by using templates), which will require separate classes that will be aptly named in an intuitive fashion that make for easy drop-in replacements since the API is intended and anticipated to be the same.
This is an ambitious project that will be an overhaul of the fx.textmode class (originally named JScreen) that I created in Java many years ago (the Java version was nearly complete, and was fully functional except for some transactional functionality I was working on, but then I had to abandon it because Oracle broke backward compatibility by introducing significant changes to the way Java is compiled that is not consistent with the write-once-run-anywhere mantra; this is one of the major reasons I moved over to C++).
Including OpenSSL's TLS support for encrypted socket communication is essential for this class. Without it, adding encryption will just take everything back to square one because OpenSSL is not a C++ Object-Oriented library; it's a C library (one of the goals of the rsocket class is to provide socket I/O in a complete Object-Oriented fashion).
Some additional features, such as threadgroups and CPU affinity settings, are also planned
A collection of static methods that facilitate a variety of general-purpose computer programming needs
Please do not rely on the above links to the documentation as these are in a state of flux with some significant structural changes planned.