Skip to content

teleprint-me/dsa.c

Repository files navigation

dsa

Data Structures and Algorithms written in pure C.

🗃️ Dependencies

  • libc (C standard library)
  • math (math library, typically linked as -lm)
  • realtime (real-time extensions, usually -lrt)
  • pthread (POSIX threads, -lpthread)
  • pcre2-8 (Perl Compatible Regular Expressions, 8-bit)

Note:

  • POSIX compliance required.
  • Officially supported on Arch Linux. Other Linux distros may work, but are not guaranteed.
  • Windows users: Use WSL for full compatibility.
  • Mac OS X and BSD are not supported at this time.

🚀 Quick Start

1. Clone

git clone https://github.com/teleprint-me/dsa.c.git dsa
cd dsa

2. Build

# Use Release for optimized builds
cmake -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build --config Debug -j $(nproc)

3. Run Tests

ctest --rerun-failed --output-on-failure --test-dir build

4. Generate Documentation

cmake --build build --target run_doxy -j 16

🪄 Integration

Add as a Git Submodule

git submodule add https://github.com/teleprint-me/dsa.c.git dsa

Include in Your Project

#include "core/memory.h"
#include "core/logger.h"
#include "allocator/arena.h"

Update Submodule

git submodule update --remote dsa

🧪 Project Status

Work in progress. APIs and modules change frequently. Feedback and pull requests are welcome!

See tests/ for up-to-date usage examples.

📚 References

Mathematics

Programming

🪪 License

This project is licensed under the LGPL. See LICENSE for details.

About

Data Structures and Algorithms written in pure C.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages