Despite its many strengths, C is a low-level programming language that requires developers to implement data structures and algorithms from scratch. This can be both time-consuming and error-prone.
The C Things Framework aims to address these challenges by providing an abstraction layer for common data structures and functionalities. Our library exposes a user-friendly and easy-to-use API, allowing developers to focus on building their applications without reinventing the wheel.
- Multiple Producer Single Consumer Channel for thread-safe communication
- Strings Library
- Queue Data structure
- Stack Data structure
- Vector Library
- HashMap Data structure
- Log System
- Date and Time
- Test Library
- Clone and Build
git clone https://github.com/edilson258/cthings.git
cd cthings
cmake -B build
cmake --build build
python3 headers-joiner.py
- Now you can include the header
build/cthings.h
onC
program
- Write some code
cthings/main.c
#include "./build/cthings.h"
int main(void) {
Vector_t vec = Vector_new();
// See examples/ for more
return 0;
}
- Compile and link with
cthings
library
clang -c -o main.o main.c
clang -o main main.o -lcthings -L./build
- Download the release for your platform
- Unzip the file
- write some code
main.c
#include "./cthings/include/cthings.h"
int main(void) {
Vector_t vec = Vector_new();
// See examples folder for more
return 0;
}
- Compile and link with
cthings
library
clang -c -o main.o main.c
clang -o main main.o -lcthings -L./cthings/lib
This project follows the KISS (Keep It Simple, Stupid) principle, ensuring that the codebase remains clean, straightforward, and easy to understand. We welcome contributions from developers of all experience levels, especially those new to coding in C. Whether you're looking to fix bugs, add new features, or improve documentation, your efforts are valued and appreciated.
If you need any help or have questions, feel free to open an issue or reach out to me. I encourage you to ask questions and engage with the community.