LibUCW
What's that?
The UCW library aims to provide a set general purpose tools for programming in the C language. In other words, to make writing of complex and very efficient programs in plain C a pleasure.
It originated as a part of the Sherlock Holmes search engine, but it is now developed separately. However, the primary development motivation is still to serve the needs of projects demanding both extreme speed and elegance.
Features
- Fast buffered IO
- Memory pools and other efficient memory allocators
- Generic data structures (e.g., heaps, search trees, growing buffers)
- Internal and external sorting routines
- Event loop (watching over file descriptors, sub-processes, timers, and signals)
- Configuration and logging system
- String routines
- Fast compression and checksums
- Transactions and exceptions
- Build system
- Documentation system
- Companion libraries for charset conversion, loading of images, and parsing of JSON and XML
- … and many more
Documentation
You can browse LibUCW documentation online.
Download
The latest release of LibUCW can be downloaded via HTTP or FTP.
See the release notes for information on the latest release and recent changes.
The current development version can be checked out from our Git repository at git://git.ucw.cz/libucw.git
,
or you can examine the repository through gitweb.
License
The library can be distributed and used under the terms of GNU Lesser Public License (LGPL), either version 2 or any later version. Several modules are in public domain.
Authors
Most parts of the library were written by Martin Mareš, Robert Špalek, Pavel Charvát, Daniel Fiala, Tomáš Gavenčiak, Robert Kessl, Jan Moskyto Matějka, Tomáš Valla and Michal Vaner.
Reporting bugs
All bug reports, ideas for new features and other wishes are welcome at libucw-devel@ucw.cz. Patches are welcome even more ;-)
If you use the library to your pleasure, the authors will be glad to hear that at the same address.
Companion libraries
LibUCW is accompanied by several other libraries, which you might find useful.
- libucw-json – a flexible JSON parser and formatter
- libucw-xml – a lightning fast and flexible XML parser
- libucw-charset – manipulation of character sets and UniCode categories [experimental]
- libucw-images – manipulation of images [experimental]