Skip to content
smattymatty edited this page Feb 23, 2026 · 2 revisions

Daedalus

A C library that makes data structures and math feel less painful. Part of the MIDAS Toolchain.

Philosophy

Everything in Daedalus is built around two ideas:

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

  2. 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, and Destroy when you're done.

Guides

Data Structures

Collections

Text

  • Dynamic Strings — Python-like string ops: append, format, slice, template.

Utilities

  • Logging — Leveled logging with handlers, contexts, and throttling.

Data Formats

  • DUF Reference — Daedalus Unified Format for game config files.

Quick Pattern

Every Daedalus type follows the same lifecycle:

Type_t* thing = d_TypeInit(...);  // create
// ... use it ...
d_TypeDestroy(thing);             // clean up

That's it. No ownership flags, no reference counting. You create it, you destroy it.

Install

git clone https://github.com/McCoy1701/Daedalus.git
cd Daedalus
make shared
sudo make install

Then: gcc your_code.c -lDaedalus

Clone this wiki locally