Skip to content

Commit 9747d32

Browse files
doc
1 parent 6657eb9 commit 9747d32

3 files changed

Lines changed: 50 additions & 44 deletions

File tree

.github/workflows/c-cpp.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ jobs:
1919
uses: egor-tensin/setup-gcc@v1
2020
with:
2121
version: 14
22-
architecture: x64
2322
- name: autogen
2423
run: ./autogen.sh
2524
- name: configure

README.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
![Build](https://github.com/fredrikwidlund/libdynamic/actions/workflows/c-cpp.yml/badge.svg)
2+
3+
## About
4+
5+
libdynamic is a single file header library design to provide dynamic, performance optimized, low-level data structures for C.
6+
7+
## Installation
8+
9+
Copy `dynamic.h` to your header path and compile with `-flto` to ensure link time optimizations.
10+
11+
## Unit tests
12+
13+
The test suite requires cmocka and valgrind.
14+
15+
./configure
16+
make check
17+
18+
## Versioning
19+
20+
libdynamic follows the semantic versioning scheme.
21+
22+
## Licensing
23+
24+
libdynamic is licensed under the zlib license.
25+
26+
## Data types
27+
28+
### Data containers
29+
30+
Data containers are generic data containers reducing the need for the common use case of handling separate variables for pointers and size. Data vectors also remove the need for zero-terminated strings, and help reduce strlen() runtime usage.
31+
32+
### Strings
33+
34+
UTF-8 compliant strings that store an explicit string length to avoid zero termination issues.
35+
36+
### Vectors
37+
38+
Vectors are dynamically resized arrays, similar to C++ std::vector, with O(1) random access, and O(1) inserts and removals at the end.
39+
40+
### Lists
41+
42+
Lists are doubly linked sequence containers, similar to C++ std::list, with O(1) inserts (given a known position) and deletes.
43+
44+
### Buffers
45+
46+
Buffers offers generic data containers with dynamic memory allocation. Buffers can inserted into, erased from, resized and compacted, saved to and loaded from files.
47+
48+
### Memory pools
49+
50+
Memory pools improves performance when frequently allocating and deallocating objects of a predetermined size.

README.rst

Lines changed: 0 additions & 43 deletions
This file was deleted.

0 commit comments

Comments
 (0)