Repository navigation
Note
First major release since v2.0.0: a full audit and bug fix pass over the whole library. The EETPParser handshake now works end to end, SharedMemory, Server / Client, Process, ArgParser and Cli got rid of their deadlocks, data races and undefined behaviours, and every section is covered by unit tests. The licenses of the dependencies are now stated: the MIT license only covers libutils itself.
See the changelog for more details.
| Part | What changed |
|---|---|
network |
Sockets moved to utils::network, listen never blocks on a partial payload, stop / kill safe from another thread, no more SIGPIPE |
manip |
EETPParser handshake fixed (new framing, random AES iv per payload), Base64 padding, ANSI codes aligned on ECMA-48 |
encapsulation |
SharedMemory reader thread, slot release and close / join fixed, Process::spawn child isolated |
security |
RSAKey encrypts data of any size, AES / Base64 size checks, observers safe at static init |
arguments / cli |
ArgParser usages and hooks, Settings casts with range checks, Cli deadlocks and history |
| tests | 854 unit tests (~89 % of the lines), regression tests for every fixed bug, clean under ASan / UBSan |
| packages | libutils-dev requires the OpenSSL headers, licenses of the dependencies shipped (THIRD_PARTY_NOTICES.md) |
Important
[MAJOR] Not compatible with the previous versions:
- the sockets moved from
utils::network::sockettoutils::network(the old names are kept with a migration warning until ~v4.0.0) - the
EETPParserframing changed (random iv per payload, sent with the tag): both sides must usev3.0.0 utils::verbose::verboseis astd::atomic, the ANSI blink / reset codes changed,IdHandler::free(bool)becameIdHandler::clear(bool)- several public names follow the naming convention, the old ones are kept with a migration warning until ~
v4.0.0
Caution
The algorithms synced in include/utils/algorithms/ (c2dmp-hsm, s.o.s) are under CC BY-NC-SA 4.0: no commercial use without an agreement with the author.
Full Changelog: https://github.com/TsukiNi22/libutils/blob/v3.0.0/CHANGELOG.md
Compare: v2.13.2...v3.0.0