C Generic

Open-source C projects categorized as Generic

Top 9 C Generic Projects

  • Klib

    A standalone and lightweight C library

    Project mention: Factor is faster than Zig | news.ycombinator.com | 2023-11-10

    In my example the table stores the hash codes themselves instead of the keys (because the hash function is invertible)

    Oh, I see, right. If determining the home bucket is trivial, then the back-shifting method is great. The issue is just that it’s not as much of a general-purpose solution as it may initially seem.

    “With a different algorithm (Robin Hood or bidirectional linear probing), the load factor can be kept well over 90% with good performance, as the benchmarks in the same repo demonstrate.”

    I’ve seen the 90% claim made several times in literature on Robin Hood hash tables. In my experience, the claim is a bit exaggerated, although I suppose it depends on what our idea of “good performance” is. See these benchmarks, which again go up to a maximum load factor of 0.95 (Although boost and Absl forcibly grow/rehash at 0.85-0.9):

    https://strong-starlight-4ea0ed.netlify.app/

    Tsl, Martinus, and CC are all Robin Hood tables (https://github.com/Tessil/robin-map, https://github.com/martinus/robin-hood-hashing, and https://github.com/JacksonAllan/CC, respectively). Absl and Boost are the well-known SIMD-based hash tables. Khash (https://github.com/attractivechaos/klib/blob/master/khash.h) is, I think, an ordinary open-addressing table using quadratic probing. Fastmap is a new, yet-to-be-published design that is fundamentally similar to bytell (https://www.youtube.com/watch?v=M2fKMP47slQ) but also incorporates some aspects of the aforementioned SIMD maps (it caches a 4-bit fragment of the hash code to avoid most key comparisons).

    As you can see, all the Robin Hood maps spike upwards dramatically as the load factor gets high, becoming as much as 5-6 times slower at 0.95 vs 0.5 in one of the benchmarks (uint64_t key, 256-bit struct value: Total time to erase 1000 existing elements with N elements in map). Only the SIMD maps (with Boost being the better performer) and Fastmap appear mostly immune to load factor in all benchmarks, although the SIMD maps do - I believe - use tombstones for deletion.

    I’ve only read briefly about bi-directional linear probing – never experimented with it.

  • sc

    Common libraries and data structures for C.

    Project mention: A simple hash table in C | news.ycombinator.com | 2023-06-13
  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • mlib

    Library of generic and type safe containers in pure C language (C99 or C11) for a wide collection of container (comparable to the C++ STL).

    Project mention: preprocessor stuff - compile time pasting into other files | /r/C_Programming | 2023-12-09

    This uses the preprocessing library

  • lwrb

    Lightweight generic ring buffer manager library

  • c-iterators

    :books: A demonstration of implementing a "type-safe" lazy iterator interface in pure C99

  • C-DataStructures-And-Algorithms

    Generic data structures and algorithms implemented in c language.

  • c-iterplus

    Functional, Type safe, Lazy abstractions for generic iterators in C - https://github.com/TotallyNotChase/c-iterators

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • generikit-hid-sony

    Generic PlayStation patches. Those that were revoked by the sages.

  • ll

    Generic C99 Singly & Doubly Linked List Implementation with OOP, ranges, custom loops and more. (by a-p-jo)

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-12-09.

C Generic related posts

Index

What are some of the best open-source Generic projects in C? This list will help you:

Project Stars
1 Klib 4,010
2 sc 2,163
3 mlib 789
4 lwrb 766
5 c-iterators 90
6 C-DataStructures-And-Algorithms 58
7 c-iterplus 28
8 generikit-hid-sony 13
9 ll 5
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com