- fast, efficient code
- small, easy to use api
- use C99 for compatibility
- tested and sanitized with UBSan and ASan
- implement basic things of interest for quick reusage in C projects
- single header file
- license for you to choose: public domain or MIT
sarr
-void*
arrayslist
-void*
dynamic listshtable
-void*
dynamic hash table- simplified implementation of cuckoo hashing (no loop)
- hashed with yoshimura and MurmurHash3
- uses nul-terminated char* keys
all of the structures above can be generated for non-pointer values with SCL_STRUCTURE_DEFINE(type)
and SCL_STRUCTURE_IMPLEMENT(type)
macros. Refer to scl.h for guidance.
sread
andsreadlns
- read text/binary file into char* (nul-terminated or not) or into char* arraysmalloc
,scalloc
,sfree
- allocation wrappers for debugging (wrap in macro to use)