Image of Ygor, in Frankensteinian style.


Ygor ("eye-gore") is a GPLv3 C++ utility library. It is used by the author to share common code amongst a handful of disparate projects. It has been released in the hopes that the routines might be useful to some.


Ygor contains routines for strings, files and directories, networking, thread pools, work queues, vector math, image data, simple config file parsing, and argument parsing, among other things. Ygor is not a comprehensive library - nor will it ever be. It exists to support ongoing (unrelated) projects.


Ygor was written to factor common code amongst a handful of disparate projects. Therefore, like the Igor of Frankenstein-fame, it is hideous. It exists to stand in the shadows and provide support. It is primarily composed of ugly (but useful) code which other projects require (but don't want to touch with a ten-foot-pole).


Q. Why not use other (more mature, more comprehensive, better tested) utility libraries?
A. Ygor was written to factor common code amongst a handful of projects. Ygor fits the needs of the author quite well.

Q. What is the best way to use libYgor?
A. Copying whatever source you need directly into your project is probably the easiest (and is encouraged). A single shared library and a single static library are provided for linking. More fine-grained libraries can be produced from individual components (e.g. networking routines only), if required.

Q. How do I contribute?
Q. Where do I send bug reports?
Q. How do I contact the author?
A. Please send all thoughts, patches, suggestions, and notes to .


The source is available here. Please send questions or comments to . Or, even better, send a pull request ☺.