LibUCW
What's that?
LibUCW is a general-purpose C library providing both implementation of common algorithms (like sorting, heaps), support for performance computing (fast buffered IO) and some generic data structures. In short, it is a library of things the authors consider useful in most of programs written in C.
As a bonus, there is a build system you can use in your program, documentation system and few perl modules.
It is developed as part of the Sherlock Holmes search engine.
Features
- Fast buffered IO
- Memory pools
- Internal and external sorting routines
- Generic data structures (heaps, search trees, growing buffers)
- Unicode manipulation
- Main loop (watching over file descriptors, sub-processes and timers)
- Thread support
- Configuration system
- Modular system for configure scripts
- Build system
- Documentation system
Additional libraries
The package contains few other libraries which you might find useful. You can build & install libUCW with them or without. However they are not documented and are more specific.
- libcharset – allows manipulation with character sets.
- libsh – the Sherlock Holmes library. It contains some routines for storing large amounts of data and alike.
- liblang – guessing of text language.
- libimages – manipulation with images.
License
The library is available under the terms of GNU Lesser Public License (LGPL) with the exception of few modules, which are in public domain.
There is also a commercial version of the library, available with the commercial version of Sherlock Holmes. However, unlike the Sherlock Holmes, the commercial version of library does not come with additional features.
Authors
The library is developed together with Sherlock Holmes by the same authors. Most of it was written by Martin Mareš, Robert Špalek, Pavel Charvát and Michal Vaner.
Documentation
Although the documentation is not yet complete, you can browse the part which is already written. You can compile the same documentation from the package.
Reporting bugs
All reports about bugs, inconveniences or ideas for new features are welcome at holmes-bugs@ucw.cz. Patches implementing them are welcome even more ;-).
If you use the library to your pleasure, the authors will be glad to hear that at the same address.