reorganize other_libs by category

pull/228/head
Sean Barrett 2016-01-22 06:59:09 -08:00
parent bb5917fa93
commit b9a29d9b5b
1 changed files with 82 additions and 83 deletions

View File

@ -4,100 +4,99 @@ In addition to all of [my libraries](https://github.com/nothings/stb), there are
People have told me about quite a few of these. However, I haven't used most of these libraries People have told me about quite a few of these. However, I haven't used most of these libraries
and can't comment on their quality. (If you use them and aren't their author, feel and can't comment on their quality. (If you use them and aren't their author, feel
free to tell me about their quality.) _Newest additions are in italics._ free to tell me about their quality.
- **images** [jo_gif.cpp](http://www.jonolick.com/home/gif-writer): animated GIF writer (public domain) **Public domain single-file libraries are in bold.**
- **images** [gif.h](https://github.com/ginsweater/gif-h): animated GIF writer (public domain)
- **images** [tiny_jpeg.h](https://github.com/serge-rgb/TinyJPEG/blob/master/tiny_jpeg.h): JPEG encoder (public domain)
- **images** [miniexr](https://github.com/aras-p/miniexr): OpenEXR writer (public domain)
- **geometry** [nv_voronoi.h](http://www.icculus.org/~mordred/nvlib/): find voronoi regions on lattice w/ integer inputs (public domain)
- **geometry** [sobol.h](https://github.com/Marc-B-Reynolds/Stand-alone-junk/blob/master/src/SFH/Sobol.h): sobol & stratified sampling sequences (public domain)
- **network** [zed_net](https://github.com/ZedZull/zed_net): cross-platform socket wrapper (public domain)
- **strings**; **files & filenames** [DG_misc.h](https://github.com/DanielGibson/Snippets/): Daniel Gibson's stb.h-esque cross-platform helpers: path/file, strings (public domain)
- **strings** [utf8](https://github.com/sheredom/utf8.h): utf8 string library (public domain)
- **strings** [strpool.h](https://github.com/mattiasgustavsson/libs): string interning (public domain/MIT)
- **misc** [MakeID.h](http://www.humus.name/3D/MakeID.h): allocate/deallocate small integer IDs efficiently (public domain)
- **misc** [gb_string.h](https://github.com/gingerBill/gb): dynamic strings for C (public domain)
- **misc** [loguru](https://github.com/emilk/loguru): flexible logging for C++ (public domain)
- **hardware** [EasyTab](https://github.com/ApoorvaJ/EasyTab): multi-platform tablet input (public domain)
Not public domain:
- **images** [tinyexr](https://github.com/syoyo/tinyexr): EXR image read/write (BSD license) *uses miniz internally* category | library | license | # files | description
- **images** [lodepng](http://lodev.org/lodepng/): PNG encoder/decoder (zlib license) -------- | ------- | ------- | ------- | -----------
- **images** [nanoSVG](https://github.com/memononen/nanosvg): 1-file SVG parser; 1-file SVG rasterizer (zlib license) 2D | [blendish](https://bitbucket.org/duangle/oui-blendish/src) | MIT | **1** | blender-style widget rendering
- **3D** [tinyobjloader](https://github.com/syoyo/tinyobjloader): wavefront OBJ file loader (BSD license) 2D | [tigr](https://bitbucket.org/rmitton/tigr/src) | **public domain** | 2 | quick-n-dirty window text/graphics for Windows
- **2D** [blendish](https://bitbucket.org/duangle/oui-blendish/src): blender-style widget rendering (MIT license) 2D | [noc_turtle](https://github.com/guillaumechereau/noc) | **public domain** | 2 | procedural graphics generator
- **math** [mm_vec.h](https://github.com/vurtun/mmx): vector math (BSD license) 3D | [tinyobjloader](https://github.com/syoyo/tinyobjloader) | BSD | **1** | wavefront OBJ file loader
- _**math** [ShaderFastLibs](https://github.com/michaldrobot/ShaderFastLibs): approximate transcendental functions optimized for shaders (esp. GCN) (MIT license)_ 3D | [mikktspace](https://svn.blender.org/svnroot/bf-blender/trunk/blender/intern/mikktspace/) | zlib | 2 | compute tangent space for normal mapping
- **geometry** [sdf.h](https://github.com/memononen/SDF): compute signed-distance field from antialiased image (MIT license) AI | [micropather](http://www.grinninglizard.com/MicroPather/) | zlib | 2 | pathfinding with A*
- **geometry** [nanoflann](https://github.com/jlblancoc/nanoflann): build KD trees for point clouds (BSD license) audio | [aw_ima.h](https://github.com/afterwise/aw-ima/blob/master/aw-ima.h) | MIT | **1** | IMA-ADPCM audio decoder
- **geometry** [jc_voronoi](https://github.com/JCash/voronoi): find voronoi regions on float/double data (MIT license) compression | [miniz.c](https://github.com/richgel999/miniz) | **public domain** | 2 | zlib compression,decompression, zip file, png writing
- **geometry** [par_msquares](https://github.com/prideout/par): convert (binarized) image to triangles (MIT license) compression | [lz4](https://github.com/Cyan4973/lz4) | BSD | 2 | fast but larger LZ compression
- **geometry** [tk_objfile](https://github.com/joeld42/tk_objfile): OBJ file loader (MIT license) compression | [fastlz](https://code.google.com/p/fastlz/source/browse/#svn%2Ftrunk) | MIT | 2 | fast but larger LZ compression
- **geometry** [par_shapes](http://github.prideout.net/shapes/): generate various 3d geometric shapes (MIT license) compression | [pithy](https://github.com/johnezang/pithy) | BSD | 2 | fast but larger LZ compression
- **network** [mm_web.h](https://github.com/vurtun/mmx): lightweight webserver, fork of webby (BSD license) crypto | [TweetNaCl](http://tweetnacl.cr.yp.to/software.html) | **public domain** | 2 | high-quality tiny cryptography library
- **network** [par_easycurl.h](https://github.com/prideout/par): curl wrapper (MIT license) data structures | [klib](http://attractivechaos.github.io/klib/) | MIT | 2 | many 2-file libs: hash, sort, b-tree, etc
- **audio** [aw_ima.h](https://github.com/afterwise/aw-ima/blob/master/aw-ima.h): IMA-ADPCM audio decoder (MIT license) data structures | [uthash](https://github.com/troydhanson/uthash) | BSD | 2 | several 1-header, 1-license-file libs: generic hash, list, etc
- **multithreading** [mm_sched.h](https://github.com/vurtun/mmx): cross-platform multithreaded task scheduler (zlib license) data structures | [PackedArray](https://github.com/gpakosz/PackedArray) | **WTFPLv2** | 2 | memory-efficient array of elements with non-pow2 bitcount
- **parsing** [SLRE](https://github.com/cesanta/slre): regular expression matcher (GPL v2) data structures | [minilibs](https://github.com/ccxvii/minilibs) | **public domain** | 2 | two-file binary tress (also regex, etc)
- **parsing** [PicoJSON](https://github.com/kazuho/picojson): JSON parse/serializer for C++ (BSD license) files&filenames|**[DG_misc.h](https://github.com/DanielGibson/Snippets/)**|**public domain**|**1**|Daniel Gibson's stb.h-esque cross-platform helpers: path/file, strings
- **parsing** [mm_json.h](https://github.com/vurtun/mmx): JSON parser (zlib license) files & filenames | [whereami](https://github.com/gpakosz/whereami) | **WTFPLv2** | 2 | get path/filename of executable or module
- **parsing** [mm_lexer.h](https://github.com/vurtun/mmx): C-esque language lexer (zlib license) geometry | **[nv_voronoi.h](http://www.icculus.org/~mordred/nvlib/)**|**public domain**|**1**|find voronoi regions on lattice w/ integer inputs
- **tests** [utest](https://github.com/evolutional/utest): unit testing (MIT license) geometry | **[sobol.h](https://github.com/Marc-B-Reynolds/Stand-alone-junk/blob/master/src/SFH/Sobol.h)**|**public domain**|**1**|sobol & stratified sampling sequences
- **tests** [catch](https://github.com/philsquared/Catch): unit testing (Boost license) geometry | [sdf.h](https://github.com/memononen/SDF) | MIT | **1** | compute signed-distance field from antialiased image
- **tests** [SPUT](http://www.lingua-systems.com/unit-testing/): unit testing (BSD license) geometry | [nanoflann](https://github.com/jlblancoc/nanoflann) | BSD | **1** | build KD trees for point clouds
- **misc** [lualite](https://github.com/janezz55/lualite/): generate lua bindings in C++ (MIT license) geometry | [jc_voronoi](https://github.com/JCash/voronoi) | MIT | **1** | find voronoi regions on float/double data
- **misc** [tinyformat](https://github.com/c42f/tinyformat): C++ typesafe printf (Boost license) geometry | [par_msquares](https://github.com/prideout/par) | MIT | **1** | convert (binarized) image to triangles
geometry | [tk_objfile](https://github.com/joeld42/tk_objfile) | | **1** | OBJ file loader
geometry | [par_shapes](http://github.prideout.net/shapes/) | MIT | **1** | generate various 3d geometric shapes
geometry | [Tomas Akenine-Moller snippets](http://fileadmin.cs.lth.se/cs/Personal/Tomas_Akenine-Moller/code/) | **public domain** | 2 | various 3D intersection calculations, not lib-ified
geometry | [Clipper](http://www.angusj.com/delphi/clipper.php) | Boost | 2 | line & polygon clipping & offsetting
geometry | [PolyPartition](https://github.com/ivanfratric/polypartition) | MIT | 2 | polygon triangulation, partitioning
hardware| **[EasyTab](https://github.com/ApoorvaJ/EasyTab)**|**public domain**|**1**|multi-platform tablet input
images| **[jo_gif.cpp](http://www.jonolick.com/home/gif-writer)**|**public domain**|**1**|animated GIF writer
images| **[gif.h](https://github.com/ginsweater/gif-h)**|**public domain**|**1**|animated GIF writer
images| **[tiny_jpeg.h](https://github.com/serge-rgb/TinyJPEG/blob/master/tiny_jpeg.h)**|**public domain**|**1**|JPEG encoder
images| **[miniexr](https://github.com/aras-p/miniexr)**|**public domain**|**1**|OpenEXR writer
images | [tinyexr](https://github.com/syoyo/tinyexr) | BSD | **1** | EXR image read/write, uses miniz internally
images | [lodepng](http://lodev.org/lodepng/) | zlib | **1** | PNG encoder/decoder
images | [nanoSVG](https://github.com/memononen/nanosvg) | zlib | **1** | 1-file SVG parser; 1-file SVG rasterizer
images | [picopng.cpp](http://lodev.org/lodepng/picopng.cpp) | zlib | 2 | tiny PNG loader
images | [jpeg-compressor](https://github.com/richgel999/jpeg-compressor) | **public domain** | 2 | 2-file jpeg compress, 2-file jpeg decompress
math | [mm_vec.h](https://github.com/vurtun/mmx) | BSD | **1** | SIMD vector math
math | [ShaderFastLibs](https://github.com/michaldrobot/ShaderFastLibs) | MIT | **1** | approximate transcendental functions optimized for shaders (esp. GCN)
multithreading | [mm_sched.h](https://github.com/vurtun/mmx) | zlib | **1** | cross-platform multithreaded task scheduler
network | **[zed_net](https://github.com/ZedZull/zed_net)**|**public domain**|**1**|cross-platform socket wrapper
network | [mm_web.h](https://github.com/vurtun/mmx) | BSD | **1** | lightweight webserver, fork of webby
network | [par_easycurl.h](https://github.com/prideout/par) | MIT | **1** | curl wrapper
network | [yocto](https://github.com/tom-seddon/yhs) | **public domain** | 2 | non-production-use http server
network | [happyhttp](http://scumways.com/happyhttp/happyhttp.html) | zlib | 2 | http client requests
network | [mongoose](https://github.com/cesanta/mongoose) | GPLv2 | 2 | http server
network | [LUrlParser](https://github.com/corporateshark/LUrlParser) | MIT | 2 | lightweight URL & URI parser RFC 1738, RFC 3986
parsing | [SLRE](https://github.com/cesanta/slre) | GPLv2 | **1** | regular expression matcher
parsing | [PicoJSON](https://github.com/kazuho/picojson) | BSD | **1** | JSON parse/serializer for C++
parsing | [mm_json.h](https://github.com/vurtun/mmx) | zlib | **1** | JSON parser
parsing | [mm_lexer.h](https://github.com/vurtun/mmx) | zlib | **1** | C-esque language lexer
parsing | [json.h](https://github.com/sheredom/json.h) | **public domain** | 2 | JSON parser
parsing | [jzon.h](https://github.com/Zguy/Jzon) | MIT | 2 | JSON parser, C++
parsing | [minilibs](https://github.com/ccxvii/minilibs) | **public domain** | 2 | two-file regex (also binary tree, etc)
profiling | [Remotery](https://github.com/Celtoys/Remotery) | Apache 2.0 | 2 | CPU/GPU profiler Win/Mac/Linux, using web browser for viewer
profiling | [MicroProfile](https://bitbucket.org/jonasmeyer/microprofile) | **unlicense** | 2-4 | CPU (and GPU?) profiler, 1-3 header files, uses miniz internally
scripting | [lualite](https://github.com/janezz55/lualite/) | MIT | **1** | generate lua bindings in C++
strings | **[DG_misc.h](https://github.com/DanielGibson/Snippets/)**|**public domain**|**1**|Daniel Gibson's stb.h-esque cross-platform helpers: path/file, strings
strings | **[utf8](https://github.com/sheredom/utf8.h)**|**public domain**|**1**|utf8 string library
strings | **[strpool.h](https://github.com/mattiasgustavsson/libs)**|**public domain**/MIT|string interning
strings | [dfa](http://bjoern.hoehrmann.de/utf-8/decoder/dfa/) | MIT | 2 | fast utf8 decoder
strings | **[gb_string.h](https://github.com/gingerBill/gb)**|**public domain**|**1**|dynamic strings for C
tests | [utest](https://github.com/evolutional/utest) | MIT | **1** | unit testing
tests | [catch](https://github.com/philsquared/Catch) | Boost | **1** | unit testing
tests | [SPUT](http://www.lingua-systems.com/unit-testing/) | BSD | **1** | unit testing
tests | [pempek_assert.cpp](https://github.com/gpakosz/Assert/tree/master/src) | **WTFPLv2** | 2 | flexible assertions in C++
user interface|[dear imgui](https://github.com/ocornut/imgui)|MIT|_many_|an immediate-mode GUI formerly named "ImGui"
misc | **[MakeID.h](http://www.humus.name/3D/MakeID.h)**|**public domain**|**1**|allocate/deallocate small integer IDs efficiently
misc | **[loguru](https://github.com/emilk/loguru)**|**public domain**|**1**|flexible logging for C++
misc | [tinyformat](https://github.com/c42f/tinyformat) | Boost | **1** | C++ typesafe printf
misc | [dbgtools](https://github.com/wc-duck/dbgtools) | zlib | 2 | cross-platform debug util libraries
misc | [stmr](https://github.com/wooorm/stmr.c) | MIT | 2 | extract English word stems
misc | [levenshtein](https://github.com/wooorm/levenshtein.c) | MIT | 2 | compute edit distance between two strings
There are some that have a source file and require a separate header file (which they may
not even supply). That's twice as many files, and we at nothings/stb cannot condone
this! But you might like them anyway:
- **images** [picopng.cpp](http://lodev.org/lodepng/picopng.cpp): tiny PNG loader (zlib license) There are also these XML libraries, but if you're using XML, shame on you:
- **images** [jpeg-compressor](https://github.com/richgel999/jpeg-compressor): 2-file jpeg compress, 2-file jpeg decompress (public domain)
- **3D** [mikktspace](https://svn.blender.org/svnroot/bf-blender/trunk/blender/intern/mikktspace/): compute tangent space for normal mapping (zlib)
- **2D** [tigr](https://bitbucket.org/rmitton/tigr/src): quick-n-dirty window text/graphics for Windows (public domain)
- **2D** [noc_turtle](https://github.com/guillaumechereau/noc): procedural graphics generator (public domain)
- **geometry** [Tomas Akenine-Moller snippets](http://fileadmin.cs.lth.se/cs/Personal/Tomas_Akenine-Moller/code/): various 3D intersection calculations, not lib-ified (public domain)
- **geometry** [Clipper](http://www.angusj.com/delphi/clipper.php): line & polygon clipping & offsetting (Boost license)
- **geometry** [PolyPartition](https://github.com/ivanfratric/polypartition): polygon triangulation, partitioning (MIT license)
- **network** [yocto](https://github.com/tom-seddon/yhs): non-production-use http server (public domain)
- **network** [happyhttp](http://scumways.com/happyhttp/happyhttp.html): http client requests (zlib license)
- **network** [mongoose](https://github.com/cesanta/mongoose): http server (GPL v2)
- _**network** [LUrlParser](https://github.com/corporateshark/LUrlParser): lightweight URL & URI parser RFC 1738, RFC 3986 (MIT license)_
- **crypto** [TweetNaCl](http://tweetnacl.cr.yp.to/software.html): high-quality tiny cryptography library (public domain)
- **AI** [micropather](http://www.grinninglizard.com/MicroPather/): pathfinding with A* (zlib license)
- **compression** [miniz.c](https://github.com/richgel999/miniz): zlib compression,decompression, zip file, png writing (public domain)
- **compression** [lz4](https://github.com/Cyan4973/lz4): fast but larger LZ compression (BSD license)
- **compression** [fastlz](https://code.google.com/p/fastlz/source/browse/#svn%2Ftrunk): fast but larger LZ compression (MIT license)
- **compression** [pithy](https://github.com/johnezang/pithy): fast but larger LZ compression (BSD license)
- **profiling** [Remotery](https://github.com/Celtoys/Remotery): CPU/GPU profiler Win/Mac/Linux, using web browser for viewer (Apache 2.0 license)
- **profiling** [MicroProfile](https://bitbucket.org/jonasmeyer/microprofile): CPU (and GPU?) profiler, 1-3 header files (unlicense) *uses miniz internally*
- **parsing** [json.h](https://github.com/sheredom/json.h): JSON parser (public domain)
- **parsing** [jzon.h](https://github.com/Zguy/Jzon): JSON parser, C++ (MIT license)
- **strings** [dfa](http://bjoern.hoehrmann.de/utf-8/decoder/dfa/): fast utf8 decoder (MIT license)
- **data structures** [klib](http://attractivechaos.github.io/klib/): many 2-file libs: hash, sort, b-tree, etc (MIT license)
- **data structures** [uthash](https://github.com/troydhanson/uthash): several 1-header, 1-license-file libs: generic hash, list, etc (BSD license)
- **data structures** [PackedArray](https://github.com/gpakosz/PackedArray): memory-efficient array of elements with non-pow2 bitcount (WTFPL v2 license)
- **data structures**; **algorithms** [minilibs](https://github.com/ccxvii/minilibs): two-file regex, binary tree (public domain)
- **files & filenames** [whereami](https://github.com/gpakosz/whereami): get path/filename of executable or module (WTFPL v2 license)
- **misc** [dbgtools](https://github.com/wc-duck/dbgtools): cross-platform debug util libraries (zlib license)
- **misc** [stmr](https://github.com/wooorm/stmr.c): extract English word stems (MIT license)
- **misc** [levenshtein](https://github.com/wooorm/levenshtein.c): compute edit distance between two strings (MIT license)
- **tests** [pempek_assert.cpp](https://github.com/gpakosz/Assert/tree/master/src): flexible assertions in C++ (WTFPL v2 license)
There is also these XML libraries, but if you're using XML, shame on you: - parsing: [tinyxml2](https://github.com/leethomason/tinyxml2): XML
- parsing: [pugixml](http://pugixml.org/): XML (MIT license)
- **parsing** [tinyxml2](https://github.com/leethomason/tinyxml2): XML (zlib license)
- **parsing** [pugixml](http://pugixml.org/): XML (MIT license)
There are some libraries that are just _so_ awesome that even though they use more There are some libraries that are just _so_ awesome that even though they use more
than two files we're going to give them special dispensation to appear in their own than two files we're going to give them special dispensation to appear in their own
little list here. If you're a crazy purist, be warned, but otherwise, enjoy! little list here. If you're a crazy purist, be warned, but otherwise, enjoy!
- **user interface** [dear imgui](https://github.com/ocornut/imgui): an immediate-mode GUI ("imgui") named "ImGui" (MIT license)
Also you might be interested in other related, but different lists: Also you might be interested in other related, but different lists:
- [clib](https://github.com/clibs/clib/wiki/Packages): list of (mostly) small single C functions (licenses not listed) - [clib](https://github.com/clibs/clib/wiki/Packages): list of (mostly) small single C functions (licenses not listed)