Files
refcount/README.md

46 lines
1.2 KiB
Markdown

# RefCount
RefCount is a reference counting (thus the name) and garbage collection library
written in C.
RefCount has support for
- Breaking dependency chains via garbage collection
- Multiple distinct contexts allowing the tracking of many types of objects,
each with a possibly different memory allocation implementation
- Safely running in multi-threaded environments
- Destructors that can possibly re-reference an object to save it
### Building
The only external requirement is [ht](https://git.zander.im/Zander671/ht). If
you build using the instructions below, CMake will automatically download and
build the dependency for you.
For multi threading support, you need a C11 compiler that supports atomic types
and has the `<threads.h>` header. Without threading support, you only need a C99
compiler.
You can build using:
```sh
cmake -B build .
# replace with above with
# cmake -B build -DREFCOUNT_USE_THREADS=OFF
# to build without threads (change the "OFF" to "ON" to re-enable threads)
make -C build
```
You can then run tests using:
```sh
make -C build test
```
### Documentation
You can generate documentation with:
```
doxygen
```
You can look in the `test/` directory for some examples of the various features
of RefCount in use.