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. + 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.
- 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. + It originated as a part of the Sherlock Holmes search engine, + but it is now developed separately.
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 +
- Generic data structures (e.g., heaps, search trees, growing buffers) +
- Very efficient memory allocators +
- Event loop (watching over file descriptors, sub-processes, timers, and signals)
- 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. +
- … and many more
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. + 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
- 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. + Most parts of the library were written by + Martin MareÅ¡, + Robert Å palek, + Pavel Charvát, + and Michal Vaner.
Download
- Currently, version 4.0 is available. + The latest release of LibUCW is version 5.0 (see release notes and online documentation).
Documentation
+ It can be downloaded via HTTP or FTP.
- 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.
+ 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.
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 ;-). + 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.
Extra libraries
++ The package also contains several other libraries from the Sherlock Holmes project, which you might find useful. + So far, they are completely optional and not much documented. +
-
+
- libcharset – manipulation of character sets and UniCode categories +
- libimages – manipulation of images +
- libshxml – a lightning fast and flexible XML parser +