Workshop o mikrokontrolérech na SKSP 2024.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

122 lines
3.4 KiB

3 months ago
The UCW library
===============
The UCW library aims to provide a set general purpose tools for programming
in the C language. It contains generic data structures (lists, trees, hash
tables etc.), fast memory allocators optimized for various usage patterns,
abstract I/O streams and optimized implementations of some common algorithms
(e.g., sorting of arrays and files).
Please note that this documentation is not yet complete. Many modules are
not described, so you might need to look into the source code.
You can see the index of <<def_index:,documented definitions>>.
For news and incompatible changes in this version, see the <<relnotes:,Release notes>>.
Modules
-------
- <<basics:,Basics>>
- <<log:,Logging>>
- <<fastbuf:,Fastbufs>>
- <<basecode:,Base64 and Base224 encoding>>
- <<hash:,Hashing routines>>
- <<conf:,Configuration and command line parser>>
- <<mempool:,Memory pools>>
- <<eltpool:,Fixed-sized allocators>>
- <<alloc:,Generic allocators>>
- <<mainloop:,Mainloop>>
- <<unaligned:,Unaligned data>>
- <<lists:,Linked lists>>
- <<gary:,Growing arrays>>
- <<heap:,Binary heaps>>
- <<binheap:,Binomial heaps>>
- <<hashtable:,Hash tables>>
- <<growbuf:,Growing buffers>> (obsolete)
- <<chartype:,Single-byte characters>>
- <<unicode:,Multi-byte characters>>
- <<varint:,Encoding of integers>>
- <<prime:,Prime numbers>>
- <<sort:,Sorting>>
- <<binsearch:,Binary search>>
- <<compress:,Compression>>
- <<trans:,Transactions and resource tracking>>
- <<string:,String operations>>
- <<time:,Time and timers>>
- <<daemon:,Daemon helpers>>
- <<signal:,Signal helpers>>
- <<opt:,Command line parser>>
- <<table:,Table printer>> and its <<ucw-tableprinter.5:,options>>
- <<xtypes:,Extended data types>>
Other features
--------------
- <<configure:,Compile time configuration>>
- <<config:,Configuration file syntax>>
- <<docsys:,Documentation system>>
- <<generic:,Macro-generated generics>>
Yet undocumented modules
------------------------
- Trie
* `trie.h`
- Red-black trees
* `redblack.h`
- Bit manipulation
* `bitarray.h`
* `bitops.h`
* `bitsig.h`
- String manipulation
* `kmp.h`
* `kmp-search.h`
* `regex.h`
* `stkstring.h`
* `strtonum.h`
* `wildmatch.h`
- File manipulation
* `asio.h`
* `io.h`
* `partmap.h`
- Address manipulation
* `url.h`
* `ipaccess.h`
- Threads
* `semaphore.h`
* `threads.h`
* `workqueue.h`
- Miscellaneous
* `sighandler.h`
* `process.h`
Companion libraries
-------------------
- <<../ucw-json/index:,LibUCW-JSON>> -- a JSON parser and formatter
- <<../ucw-xml/index:,LibUCW-XML>> -- a XML parser
- LibUCW-charset -- character set conversion (undocumented)
- LibUCW-images -- loading and conversion of images (undocumented)
License
-------
The UCW library is copyrighted by its authors.
It can be freely distributed and used according to the terms of
the GNU Lesser General Public License, either version 2 or any later
version.
Authors
-------
Primary authors and maintainers are:
- Pavel Charvát <mailto:pchar\@ucw.cz[]>
- Martin Mareš <mailto:mj\@ucw.cz[]>
- Robert Špalek <mailto:robert\@ucw.cz[]>
Several modules have been contributed by:
- Daniel Fiala <mailto:danfiala\@ucw.cz[]> (strtonum)
- Tomáš Gavenčiak <mailto:gavento\@ucw.cz[]> (logging system)
- Robert Kessl <mailto:robert.kessl\@economia.cz[]> (table printer)
- Maria Matejka <mailto:mq\@ucw.cz[]> (option parser, fb-multi)
- Tomáš Valla <mailto:tom\@ucw.cz[]> (varint)
- Michal Vaner <mailto:vorner\@ucw.cz[]> (documentation system)