https://github.com/panagiotiskotsorgios/cdsx.h
The Official C DataTypes Extended Library ==== CROSS PLATFORM LIBRARY ====
https://github.com/panagiotiskotsorgios/cdsx.h
algorithms algorithms-and-data-structures c custom-datatypes custom-library data-structures data-types dynamic-memory-allocation examples free-to-use functional-programming header-files include library low-level low-level-programming memory-management open-source pointers team-repo
Last synced: about 1 month ago
JSON representation
The Official C DataTypes Extended Library ==== CROSS PLATFORM LIBRARY ====
- Host: GitHub
- URL: https://github.com/panagiotiskotsorgios/cdsx.h
- Owner: PanagiotisKotsorgios
- License: mit
- Created: 2025-01-24T22:24:23.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-02-25T09:02:57.000Z (4 months ago)
- Last Synced: 2025-04-23T14:36:34.340Z (2 months ago)
- Topics: algorithms, algorithms-and-data-structures, c, custom-datatypes, custom-library, data-structures, data-types, dynamic-memory-allocation, examples, free-to-use, functional-programming, header-files, include, library, low-level, low-level-programming, memory-management, open-source, pointers, team-repo
- Language: C
- Homepage: http://cx.com
- Size: 1.12 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
> 🚩 Warning, the library is not yet complete, it has errors in the code ubt the version 0.0.2 will fix them.
# CDSX.H - `C Data Structures eXtended Library`
`CDSX.H` is an open-source library designed to bring advanced data structures and utilities to the C programming language. By extending the capabilities of C with custom implementations,
`CDSX.H` simplifies and enhances data handling in your applications.---
## Features
- **`Dynamic Arrays`**: Resizeable arrays with built-in utility functions.
- **`Hash Maps`**: Efficient key-value pair storage.
- **`Tuples`**: Combine multiple values of different types.
- **`BitSet`**: Compact storage and manipulation of binary data.
- **`Matrix Operations`**: Support for creating and manipulating 2D matrices.
- **`Optionals`**: Safely handle nullable or missing values.
- **`MetaArray`**: Our Teams custom data type (no other language has it)
- And much more!---
## Why Use CDSX.H?
`C`, while powerful, lacks many modern data structures that are common in higher-level languages. `**CDSX.H**` aims to fill this gap by providing:
- High-performance implementations tailored for C.
- Open-source flexibility for extension and customization.
- Allowing higher level like fucntionlities---
## Getting Started
### Installation
`1. Clone the repository:`
git clone https://github.com/PanagiotisKots/cdsx.h`2. Link the Static Library in Your Project.`
- Use `#include` to include the relevant headers in the src file:
ex. #include "arraylist.h"
`3. Compile and Run.`
ex. gcc -I../include/headers main.c ../src/utils/file_you_need.c -o name_of_the_exe
- **Dynamic Array**
```c
#include "dynamic_array.h" // Include the header file for the CDSX libraryint main() {
// Create a new dynamic array
DynamicArray *arr = dynamic_array_create();// Append values to the dynamic array
dynamic_array_append(arr, 42);
dynamic_array_append(arr, 84);// Retrieve and print the value at index 0
printf("Value at index 0: %d\n", dynamic_array_get(arr, 0));// Free the allocated memory for the dynamic array
dynamic_array_free(arr);return 0;
}```
### `Folder Structure`
- `build/`: Compiled source files(.o format).
- `docs/`: Documentation for the library.
- `examples/`: Example programs demonstrating library usage.- `extended_docs/`: Extedned (analytic) documentations.
- `extended_guides/`: User - Developer analytic guides.
- `include/`: Header files.
- `metaArray/`: Includes, src for the metaArray structure.
- `src/`: Source code for the library.
- `tests/`: Unit tests for verifying functionality.
- `threading/`: Includes, src for the threading functionality.### `Contribution`
- We welcome contributions! To get started:
> Fork the repository and create a feature branch.
> Write your changes and add tests if applicable.
> Open a pull request with a detailed description of your changes.
### Please see `CONTRIBUTING.md` for more details.
### `License`
This project is licensed under the `MIT License`. See LICENSE.md for more details.