Skip to content

Releases: riefproject/reestruct

reestruct-v1.0.0

15 Dec 15:11

Choose a tag to compare

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 docsdocs/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

20 Apr 04:08

Choose a tag to compare

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.