finds.dev← search

// the find

emilk/emilib

★ 354 · C++ · updated Jan 2022

Loose collection of misc C++ libs

emilib is Emil Ernerfeldt's personal grab-bag of C++14 utilities pulled out of his own game projects — hash maps, a coroutine-via-threads helper, filesystem wrappers, scope_exit, and iOS/OSX-specific bits like texture and shader hot-reloading. It's for C++ game or tools programmers who want to lift one header at a time rather than adopt a framework.

Each library is deliberately standalone (apart from shader_mngr) and only needs loguru, so you can drop a single header+cpp pair like hash_map.hpp into a project without dragging in the rest. hash_map/hash_set use open addressing with linear probing and power-of-two capacity — a real win over std::unordered_map for small/medium key types, and the README is upfront that keys move on rehash instead of pretending to match std:: semantics. The small primitives (irange, scope_exit, dir_watcher) are things most C++ codebases end up reinventing anyway, so there's no shame in just taking these.

There's no CMakeLists or package manager integration anywhere in the tree — you compile and link .cpp files by hand, which is fine for grabbing one header but painful past that. The author calls both the tests and examples 'very limited,' so there's no real confidence these are exercised beyond whatever game shipped them. A sizeable chunk of the repo (al_lib, gl_lib, pvr.hpp, texture_mngr) is OSX/iOS-only via Objective-C++ .mm files, making it dead weight on Windows or Linux. Last pushed January 2022 with no versioning or changelog, so there's no stability contract if a header's behavior changes under you.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →