LibU is a multiplatform C library that comes under a BSD-style license. It includes many interdependent modules for accomplishing several tasks: memory allocation, networking and URI parsing, string manipulation, debugging, and logging in a very compact way, plus many other miscellaneous tasks. It has a small footprint (about 70KB for the default configuration), it is modular, and it has a multiplatform nature, making it an ideal candidate for embedded systems. KLone is an example of such usage.
|Tags||Software Development Embedded Systems Utilities Library Unit Testing JSON|
|Operating Systems||GNU/Linux *BSD QNX Solaris Windows (Cygwin/MinGW) OpenSolaris Minix 3|
Release Notes: URI: various fixes related to IP-literal parsing and reassembling. NET: u_connect_ex and ai_resolv fixes. HMAP: custom discard policies. UNIT-TEST: a fix for conditional include logics that enables test sandboxing.
Release Notes: A JSON encoder/decoder module was added. A Binary Search Tree module was added. Portability was improved: the Minix 3 and OpenSolaris platforms are now supported. Every module can now run on Windows.
Release Notes: Priority queue and ring buffer modules were added. The major version number has been updated due to some quite heavy interface restyling in the uri, buf, net, hmap, and array modules aimed at RFC conformance and greater API simplicity. Also, several extensions and fixes have been introduced.
Release Notes: A bug in u_config_get_subkey_value_b was fixed. u_list_first, u_list_next, u_list_clear, u_list_foreach, and u_list_iforeach were added. u_strlcpy and u_strlcat were added. Shared library support was added for MinGW, Cygwin, Solaris, and Dragonfly BSD. The u_strtok_cleanup facility was added and u_tokenize was deprecated in favor of u_strtok. u_va_copy was added. A bug in u_string_do_vprintf was fixed. The u_list tests were fixed for 64-bit platforms.
Release Notes: New APIs were added: u_config_sort_children, u_config_del_child, u_config_print_to_fp, u_config_load_from_buf, u_config_save_to_buf, u_config_load_from_drv, u_list_insert, u_list_del_n, u_log_set_lock (MT support), u_log_set_unlock (MT support), and *_err_rcif. Support for loading a configuration from opaque data sources was added. Support for the "include" directive was added in the configuration. A new module for dynamic array handling was added. A memory leak in the list module was fixed. u_path_snprintf was fixed.