diff --git a/README.md b/README.md new file mode 100644 index 0000000..ffef27a --- /dev/null +++ b/README.md @@ -0,0 +1,46 @@ +## Pilot Light Libraries + +Single-file MIT licensed libraries for C/C++. These are "STB" style libraries (more info [here](https://github.com/nothings/stb)). + + +### Libraries + +Library | Lastest Version | Category | Lines of Code | Description +--------------------- | ---- | -------- | --- | -------------------------------- +**[pl_ds.h](pl_ds.h)** | 1.0 | utility | 672 | typesafe dynamic array and hash tables for C +**[pl_json.h](pl_json.h)** | 1.0 | parsing | 2067 | json reading & writing for C +**[pl_log.h](pl_log.h)** | 1.0 | utility | 1273 | small logging library for C +**[pl_math.h](pl_math.h)** | 1.0 | math | 800 | small math library for C (vectors, matrices, quaternions, etc.) +**[pl_memory.h](pl_memory.h)** | 1.0 | utility | 699 | various memory allocators for C +**[pl_profile.h](pl_profile.h)** | 1.0 | utility | 551 | small profiling library for C +**[pl_stl.h](pl_stl.h)** | 1.0 | parsing | 340 | small STL file parser +**[pl_string.h](pl_string.h)** | 1.0 | utility | 439 | string utilities for C +**[pl_test.h](pl_test.h)** | 1.0 | misc | 543 | small testing library for C + +Total libraries: 9 +Total lines of C code: 7384 + + +## FAQ + +### How do I use these libraries? + +The idea behind single-header file libraries is that they're easy to distribute and deploy +because all the code is contained in a single file. By default, the .h files in here act as +their own header files, i.e. they declare the functions contained in the file but don't +actually result in any code getting compiled. + +So in addition, you should select _exactly one_ C/C++ source file that actually instantiates +the code, preferably a file you're not editing frequently. This file should define a +specific macro (this is documented per-library) to actually enable the function definitions. +For example, to use pl_log, you should have exactly one C/C++ file that doesn't +include pl_log.h regularly, but instead does + + #define PL_LOG_IMPLEMENTATION + #include "pl_log.h" + +The right macro to define is pointed out right at the top of each of these libraries. + + +### Where is the documentation? +The documentation is included at the top of each file. \ No newline at end of file