|√ Programs, √ Sites, √ Sources, √ C++,
√ Libraries, √ Hosting, √ Domains
You can install packages required for Linux Debian:
apt-get install gcc g++ make libgd2-xpm-dev git mc
You can use Microsoft Visual C++ 2017 compliller for Windows.
ToolsLib can be complilled as static library for QT in Windows for Windows and Android (it is need to uncomment //#define ___ToolsLibQT___ in the end of perm.h)
ToolsLib is contains in our git-repositary.
git clone git://git.maasoftware.ru/ToolsLib ToolsLib
It is cross-platform library for Windows 32/64 bits, Linux (compilled under Debian amd64 - g++ 6.3.0). The development for 32-bits Linux is not making, it is possible some easy correcting compiller errors for it.
ToolsLib have classes for working with date/time, strings, lists, arrays, files, hash-tables, B-tree, RB-tree, asc_tree, sockets (socket2, select, partically for epoll), sockets' timers, xml, threads, mutexes, md4, md5, gd2 library (Linux), CGI (Linux), win32-like api for working with events - WaitForXXObjects with timeouts in Linux'е. ToolsLib have separated files for working with MySQL/MariaDB.
ToolsLib's hash-table is faster when STL's unordered_map by 15 times approximatelly. (see tests here) It have the other race-сonditions comparision to STL's unordered_map.
CMaaString is more convenient, they do not throw out of range exception, returning empty substring or null char in that cases. CMaaString is working with byte strings (with utf-8 or ansi encoding for example), have 16-bits Unicode functions and founctions for web.
ToolsLib xml is like to Qt's xml.
ToolsLib have good sockets classes (for IPv4 and IPv6 TCP, partically for UDP), you can use high precision periodic timers in sockets' classes, for generetiong events too.
The work with MySQL is like to work with sqllite for Java (Android), in separated files for including (Windows, Linux).
The core of B-tree is got from Niklaus Wirth "Algorithms and data structures" book. You can use Wirth's interface of Search function or use Add, Find, Remove as they are in hash-table.
The core of Red-Black balanced tree is got from Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein "Introduction to Algorithms", with errors' corrections, shortcomings with vertex deleting and others are corrected by materials of https://ru.wikipedia.org/. Keys can be duplicated.
ToolsLib library developer is Moiseenko Andrey Alekseevitch (MaaSoftware OOO), BSD licence.
ToosLib is using in sutch projects, as RusRoute firewall, CMS MaaSoftware, FTP сервер MaaSoftware, QtTrm138Client and others.