Ygor: a C++ utility library

Hal Clark

About

Ygor (pronounced ‘eye-gore’) is a GPLv3 C++ utility library. It is used to share common math, physics, and misc utility functions amongst a handful of disparate projects.

Ygor is actively maintained as part of the DICOMautomaton suite.

Download

All source code is available here.

Contents

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

Rationale

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).

FAQs

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 comments, questions, and pull requests via opening an issue on the project page here

Feedback

Please send questions, comments, or pull requests here.