Portable, stand-alone C libraries and data structures. Each folder is stand-alone with a single header/source pair in it. There is no build for libraries, just copy files you want. e.g If you want the logger, copy sc_log.h and sc_log.c to your project. High performance & minimal memory usage. Portability between many operating systems and architectures. Tests with 100% branch coverage and multiple sanitizers. Drag & drop source code distribution. There is 100% branch coverage on Linux. Buffer for encoding/decoding variables, best fit for protocol/serialization implementations. Signal safe snprintf & Signal handler (handling CTRL+C, printing backtrace on crash etc). I often use these libraries for high-performance server-side applications. Also, I care about readable and easy-to-debug code. In summary, these libraries show my taste(trade-offs) in performance/API design/readability.
Features
- Generic array/vector
- Condition wrapper for Posix and Windows
- Crc32c, uses crc32c CPU instruction if available
- Min heap which can be used as max heap/priority queue as well
- Intrusive linked list
- A high performance open addressing hashmap