1
0
Fork
You've already forked sht
0
simple single header libraries for C
  • C 99.8%
  • Shell 0.2%
2026年07月15日 14:20:01 +05:30
tests tests 2026年07月15日 14:17:04 +05:30
.gitignore start setting up individual tests 2026年02月24日 11:57:00 +05:30
build.sh fix all warnings 2026年06月18日 16:46:27 +05:30
COPYING MASSIVE changes + change license to unlicense 2026年06月14日 14:26:58 +05:30
README.txt . 2026年07月15日 14:20:01 +05:30
sht_arena.h sht_geom 2026年06月21日 15:14:48 +05:30
sht_argparse.h fix all warnings 2026年06月18日 16:46:27 +05:30
sht_da.h fix all warnings 2026年06月18日 16:46:27 +05:30
sht_fs.h fix all warnings 2026年06月18日 16:46:27 +05:30
sht_geom.h sht_geom 2026年06月21日 15:14:48 +05:30
sht_ill.h tests 2026年07月15日 14:17:04 +05:30
sht_la.h MASSIVE changes + change license to unlicense 2026年06月14日 14:26:58 +05:30
sht_log.h MASSIVE changes + change license to unlicense 2026年06月14日 14:26:58 +05:30
sht_map.t.h fix all warnings 2026年06月18日 16:46:27 +05:30
sht_path.h fix all warnings 2026年06月18日 16:46:27 +05:30
sht_pfor.h MASSIVE changes + change license to unlicense 2026年06月14日 14:26:58 +05:30
sht_pool.h sht_pool 2026年06月18日 20:13:41 +05:30
sht_ppm.h MASSIVE changes + change license to unlicense 2026年06月14日 14:26:58 +05:30
sht_quat.h MASSIVE changes + change license to unlicense 2026年06月14日 14:26:58 +05:30
sht_rand.h MASSIVE changes + change license to unlicense 2026年06月14日 14:26:58 +05:30
sht_str.h fix all warnings 2026年06月18日 16:46:27 +05:30
sht_test.h MASSIVE changes + change license to unlicense 2026年06月14日 14:26:58 +05:30
sht_utime.h MASSIVE changes + change license to unlicense 2026年06月14日 14:26:58 +05:30

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