My favorites | Sign in
Project Home Downloads Wiki Issues Source
Project Information
Members

Why ULIB?

ULIB is a lightweight library of useful toolkit for C/C++ programming. In contrast to STL, most components of ULIB provide better efficiency and are thereby good alternatives for high-performance applications.

Components

Currently, it includes:

  1. A simple doubly linked list, this can also be used as queue and stack.
  2. An efficient hashing scheme - alignhash, both hash_map and hash_set are provided. C macros & C++ templates. See performance comparison at AlignedHashingPerformance.
  3. Binary trees, such as BST, splay tree, red-black tree and AVL tree.
  4. A list sorting algorithm, this is faster than the qsort() in libc.
  5. A binary search algorithm for text files. It works with line-sorted text files.
  6. A heap and the corresponding sorting algorithm, this is faster than the STL version.
  7. A partition algorithm, this partitions an array into three parts |<=K| K |>= K|, O(1) complexity.
  8. A collection of fast hash functions for various data types.
  9. Primitives for random number generation. Especially useful for designing numerical algorithms.
  10. A collection of bit operation hacks. Especially useful for numerical algorithms and cryptography.
  11. Both a full featured bitmap and a bloom filter.
  12. Several cryptographic algorithms, e.g., AES, RC4, SHA-x, MD5 and etc.
  13. A collection of string utilities, including primitives for parallel file processing.
  14. Timer, shell, combination enumerator and so on.

Supported platforms

  • 64-bit Linux-like OSs are recommended, also available for 32-bit platforms.
  • Windows with Cygwin.

Performance

Acknowledgment

The successful completion of ulib is the result of the cooperation, confidence, and endurance of many people. I greatly appreciate the contributions of those Linux kernel developers and many free software authors.
Powered by Google Project Hosting