simple single header libraries for C
- C 99.8%
- Shell 0.2%
sht - single header toolkit =========================== single file, header-only C23 libraries. inspired by the great stb libraries. use at your own risk. licensed under unlicense, see ./COPYING for info. libraries --------- sht_arena.h ~~~~~~~~~~~ super simple arena allocator sht_argparse.h ~~~~~~~~~~~~~~ simple, powerful argument parsing depends on: sht_str.h sht_da.h ~~~~~~~~ struct based dynamic arrays optionally depends on: sht_arena.h sht_fs.h ~~~~~~~~ filesystem helpers depends on: sht_str.h, sht_arena.h sht_geom.h ~~~~~~~~~~ simple geometry primitives, including overlap and intersection checks depends on: sht_la.h sht_ill.h ~~~~~~~~~ intrusive linked list sht_la.h ~~~~~~~~ tiny linear algebra library for graphics sht_log.h ~~~~~~~~~ simple macros for logging sht_map.t.h ~~~~~~~~~~~ macro template for type generic hashmap optionally depends on: sht_arena.h sht_path.h ~~~~~~~~~~ path utilities depends on: sht_str.h, sht_arena.h sht_pfor.h ~~~~~~~~~~ macro template for type generic parallel for loops sht_pool.h ~~~~~~~~~~ super simple pool allocator sht_ppm.h ~~~~~~~~~ write .ppm files optionally depends on: sht_la.h sht_quat.h ~~~~~~~~~~ tiny quaternion library optionally depends on: sht_la.h sht_rand.h ~~~~~~~~~~ random number generation using pcg sht_str.h ~~~~~~~~~ string views sht_test.h ~~~~~~~~~~ macro based testing framework sht_utime.h ~~~~~~~~~~~ time utilities optionally depends on: sht_log.h TODO ---- this set of libraries is definitely not complete, i plan on adding a lot more. this section will be updated frequently as i work and finish the list. abstract away the constants themselves in sht_la. #define SHT_LA_ONE (1.0) #define SHT_LA_HALF (0.5) etc... add new libraries: - sht_iavl.h : intrusive avl tree - sht_irb.h : intrusive red black tree - sht_opt.h : optional/maybe monad - sht_res.h : result/either monad - sht_ease.h : easing equations - sht_pid.h : pid controller - sht_utf.h : utf-8 (de|en)coding - sht_color.h : color utils