libu8 is a portability and utility library written in modern C for Unix-based platforms. libu8 is licensed under the LGPL and the GPL version 2 or later. You can find the source to libu8 on github.
libu8 is a portability and utility library written in modern C for Unix-based platforms. libu8 is licensed under the LGPL (V2.1) and GPL (V2) you can find the source on github. Detailed robodocs are available (generated by Doxygen).
libu8 provides:
-
string utilities for portably working with UTF-8 encodings
-
stream-based text I/O using UTF-8 internally but allowing output to multiple encodings
-
a client networking library for socket io, connection pools, and simple hostname lookup;
-
extensible and customizable logging functions (using
u8_printf
); -
wrappers for time-related functions allowing fine-grained times and specification of arbitrary time zones;
-
an exception handling library using
setjmp
/longjmp
with unwinds and dynamic error catching; -
signal handlers for turning synchronous signals into exceptions;
-
a server networking library for lightweight multi-threaded server implementation.
-
an extensible printf (
u8_printf
) function including output to strings; -
various hash and digest functions, including MD5, Google's cityhash, and various SHAx functions;
-
cryptographic function wrappers using local libraries;
-
a variety of file or URI path manipulation functions;
-
a wrapper for rusage() resource system calls;
-
wrappers for accessing file and directory contents and metadata;
-
support for lookup up and interpreting named character entities;
libu8 is especially intended for software which uses UTF-8 internally but may interact with applications and services employing different character encodings. However, it has grown to provide a variety of other portable functions.