-
Notifications
You must be signed in to change notification settings - Fork 1
Home
smattymatty edited this page Feb 23, 2026
·
2 revisions
A C library that makes data structures and math feel less painful. Part of the MIDAS Toolchain.
Everything in Daedalus is built around two ideas:
-
Arrays and tables are your primitives. Need a list?
dArray_t. Need a map?dTable_t. Need to store pointers?dRawArray_t. Fixed size?dStaticArray_t. They all follow the same init/use/destroy pattern. -
You shouldn't have to think about memory constantly. Arrays grow automatically. Strings handle their own buffers. Tables rehash themselves. You just
Init, use it, andDestroywhen you're done.
- Dynamic Arrays — The core. Resizable, type-generic, auto-growing.
- Static Arrays — Fixed capacity, file persistence, predictable memory.
-
Raw Pointer Arrays — Store raw
void*pointers. You manage lifetime.
- Dynamic Tables — Hash tables with automatic rehashing.
- Static Tables — Fixed-key hash tables for configs and registries.
- Dynamic Strings — Python-like string ops: append, format, slice, template.
- Logging — Leveled logging with handlers, contexts, and throttling.
- DUF Reference — Daedalus Unified Format for game config files.
Every Daedalus type follows the same lifecycle:
Type_t* thing = d_TypeInit(...); // create
// ... use it ...
d_TypeDestroy(thing); // clean upThat's it. No ownership flags, no reference counting. You create it, you destroy it.
git clone https://github.com/McCoy1701/Daedalus.git
cd Daedalus
make shared
sudo make installThen: gcc your_code.c -lDaedalus