libutil

C Utility Library
git clone http://git.omkov.net/libutil
Log | Tree | Refs | README | LICENCE | Download

libutil/README.md (53 lines, 2.0 KiB) -rw-r--r-- download

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)