Releases: riefproject/reestruct
Releases · riefproject/reestruct
reestruct-v1.0.0
Overview
Reestruct v1: a generic C data-structure library (void*), with consistent APIs. Includes lists, stack/queue/deque, binary tree, heap, ordered/unordered map & set, and an adjacency-list graph. Headers are documented (Doxygen); unit tests are included.
What’s inside
- Linear: singly/doubly linked list, stack, queue, deque
- Tree/heap: binary tree, binary heap (min-heap)
- Associative: ordered map/set (BST + comparator), unordered map/set (hash table)
- Graph: adjacency-list graph
- Tests: 56 checks covering all structures (
bash scripts/build.sh test) - Docs: generate with
bash scripts/build.sh docs→docs/html/index.html
Artifacts
- Headers:
release/include/*.h - macOS build:
libreestruct.dylib,libreestruct.so,libreestruct.a - Linux build:
libreestruct.so,libreestruct.a(add if built on Linux) - Windows (MinGW/GCC):
reestruct.dll,libreestruct.a(add if built on Windows)
Build & Link
# Build release
bash scripts/build.sh release
# Use in your project
gcc main.c -Irelease/include -Lrelease/lib -lreestruct -o main
## Docs
- Generate Doxygen: bash scripts/build.sh docs (output in docs/html/index.html)
## ⚠️ Windows (.dll)
- This package doesn’t include a prebuilt .dll if you only download macOS/Linux artifacts.
- To produce reestruct.dll, clone this repo on Windows (MinGW/MSYS2/WSL with GCC) and run:
bash scripts/build.sh release
Outputs: release/lib/reestruct.dll and release/lib/libreestruct.a.
- Native MSVC build is not provided; would require a separate toolchain/script.reestruct v0.1.0
First public alpha release of Reestruct — a modular and extensible C library for working with common data structures.
This release includes:
- Singly Linked List
- Doubly Linked List
- Stack
- Queue
- Deque
- Partial Binary Tree (basic node-based structure)
Core Features:
- Generic structure using
void*pointers - Unified, clean, and consistent API
- Designed for both static (
.a) and dynamic (.dll/.so) builds - Public headers for standalone use
- Attribution-based license — you may use freely, but please keep credit
This is an early version, so breaking changes may occur in future versions.
For more info, check the README.md or visit the project repository.