Compare Klib vs STC and see what are their differences.


A modern, user friendly, generic, type-safe and fast C99 container library: String, Vector, Sorted and Unordered Map and Set, Deque, Forward List, Smart Pointers, Bitset and Random numbers. (by tylov)
Our great sponsors
  • Scout APM - Less time debugging, more time building
  • SonarQube - Static code analysis for 29 languages.
  • JetBrains - Developer Ecosystem Survey 2022
Klib STC
14 43
3,586 346
- -
0.4 9.6
5 months ago 7 days ago
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of Klib. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-03-08.


Posts with mentions or reviews of STC. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-06-26.
  • How would I go about implementing a C++ map or unordered_map in pure C?
    3 projects | reddit.com/r/C_Programming | 26 Jun 2022
  • Containers Library in C
    2 projects | reddit.com/r/C_Programming | 12 Jun 2022
    u/attractivechaos: I relate this to my own STC container library, which is a "true" templated library. When specifying a raw pointer as value type for the hashmap, and no value destructor, it behaves like a non-owning container. The user therefore manage the pointed-to data elements (or "nodes"), and can apply the "trick" you mention, so there is no memory size advantage for the intrusive map over a hashmap in this regard.
  • Modern programming languages require generics
    3 projects | news.ycombinator.com | 24 May 2022
  • How different is C++ from C? Contrasting simple Unix SORT programs
    3 projects | reddit.com/r/cpp | 13 May 2022
    But the most common that I know of is this one: https://github.com/tylov/STC. There's also this one mentioned above https://rurban.github.io/ctl/
    3 projects | reddit.com/r/cpp | 13 May 2022
    To illustrate, using a generic typesafe container lib, like my own STC, it is just as simple to write this in C. Also uses RAII (c_auto macro). cvec is templated, here using the lib's string type, so cvec_str is already pre-configured, but containers can use any custom elements type-safely:
  • Upgrading my PRNG for procedural generation
    1 project | reddit.com/r/RNG | 6 May 2022
    sfc64 is about the same speed as sfc32, so almost twice as fast per bit generated on most 64-bit platforms. I have a slightly modified version in my STC library which is equally fast, but supports threads/streams, similar to PCG. The lack of streams or jump function is one of the few criticisms to sfc. In my mind it is merely a theoretical limitation, as the chance for repeating subsequence are incredible small, but if you need that assurance, my variant can be interesting as it is quite a bit faster than e.g. xoshiro and not sensitive to "bad" seeds.
  • Are you using Boost intrusive containers?
    1 project | reddit.com/r/cpp | 3 May 2022
    The background for the question is that many C programmers swears to use intrusive containers as the superior alternative to STL-style containers. I have a templated C container library in STL style (compiles in C++, works with standard layout types only), and have argued that for most cases, traditional STL-style containers are more natural and easier to manage. But I believe there are situations where intrusive containers are better.
  • Generic C Library
    3 projects | reddit.com/r/C_Programming | 28 Apr 2022
    I didn't intend to mention my own templated STC container library, but I am confident that it is superior to any intrusive or other generic container C libraries for that matter. That's a bold statement, but I'll be happy to compare anything from usability (API), memory usage, speed or library footprint with any other container lib, intrusive or not.
  • "double free or corruption (out)" what is causing this to happen here?
    1 project | reddit.com/r/C_Programming | 3 Apr 2022
    FYI. You can write this portable, more robustly with my STC library with less lines, but it takes some effort to understand the workings of a library too. Note that the non-portable POSIX getline() includes the newline char in the line (seldom desirable). cstr_getline() does not. c_autovar is an optional convenience macro, you can use ..init() and then ..drop() at end of function instead.
  • Help in starting
    1 project | reddit.com/r/VoxelGameDev | 13 Mar 2022
    Just remember, if you choose C and you need to use the basic containers that C++ includes in its standard library like vectors and maps, use this library, it will make your life so much easier!

What are some alternatives?

When comparing Klib and STC you can also consider the following projects:

ZLib - A massively spiffy yet delicately unobtrusive compression library.

ZXing - ZXing ("Zebra Crossing") barcode scanning library for Java, Android

Better Enums - C++ compile-time enum to string, iteration, in a single header file

ctl - My variant of the C Template Library

libevent - Event notification library

Geany - A fast and lightweight IDE

ctl - The C Template Library

HTTP Parser - http request/response parser for c

megahash - A super-fast C++ hash table with Node.js wrapper, tested up to 1 billion keys.

Cppcheck - static analysis of C/C++ code

quadsort - Quadsort is a stable adaptive merge sort which is faster than quicksort.

C++ Format - A modern formatting library