012345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
|
# libutil
**libutil** is a lightweight library to be included locally in projects that is
intended to provide common portable extensions to the C standard library.
## Components
| Component | Description | Standard |
| ---------------- | ---------------------------------------- | -------- |
| alloc | Memory allocation wrapper functions | |
| base32 | Encode or decode Base32 | |
| base64 | Encode or decode Base64 | |
| crypt | General cryptography functions | |
| endian | Endianness related functions | |
| error | Error reporting functions | |
| fnv | FNV hashing algorithms | |
| map | Generic hashmap data structure | |
| mode | Parse numeric or symbolic POSIX modes | |
| optget | Parse command line options | |
| rc2 | RC2 encryption algorithm | RFC 2268 |
| strconv | String conversion functions | |
| util | Base typedefs and macros | |
*Note that `util.h` is required by many other **libutil** components.*
## Usage
**libutil** is being developed on x86-64 Linux, is untested elsewhere, and some
components may depend on POSIX provided functionality.
**libutil** source files are intended to be built directly into projects, rather
than being compiled seperately and linked.
### Dependencies
- CMake >= 3.12, to build
### Building
To build **libutil** and its unit tests on UNIX, run `BuildUNIX.sh`.
- Binaries will be located in the `bin` directory.
- Libraries will be located in the `lib` directory.
### Testing
To run **libutil** unit tests on UNIX, run TestUNIX.sh once built.
## Meta
Copyright (C) 2020, Jakob Wakeling
[MIT Licence](https://opensource.org/licenses/MIT)
|