Generic

Open-source projects categorized as Generic

Top 23 Generic Open-Source 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.

    InfluxDB logo
  • frunk

    Funktional generic type-level programming in Rust: HList, Coproduct, Generic, LabelledGeneric, Validated, Monoid and friends.

  • Project mention: Apply generic function to every tuple element | /r/learnrust | 2023-05-22

    So rust doesn't support variadics, but I have heard some murmurings around the topic. In the meantime, you can still do a lot with recursive tras. The frunk crate makes working with them a lot easier: In this case

  • lane

    Generic PriorityQueues, Queues, Stacks, and Deque data structures for Go

  • 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

  • TableKit

    Type-safe declarative table views.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • generic-records

    Generically derive traversals, lenses, and prisms.

  • Observable

    The easiest way to observe values in Swift. (by roberthein)

  • genesis

    All generic functions for Go you ever need! (by life4)

  • tst-reflect

    Advanced TypeScript runtime reflection system

  • queue

    ⏪️ Go package providing multiple queue implementations. Developed in a thread-safe generic way. (by adrianbrad)

  • Project mention: Hello, announcing v1.3.0 of my queue package: A Linked Queue implementation was added, complementing the Circular, Blocking, and Priority queues. All structures align with the standard Queue interface. Looking forward to your feedback! | /r/golang | 2023-10-26
  • remark-directive

    remark plugin to support directives

  • scroll

    Scroll - making scrolling through buffers fun since 2016 (by m4b)

  • GenericDataSource

    A generic small reusable components for data source implementation for UITableView/UICollectionView in Swift.

  • AAFOptimusDCHAudio-Generic

    OFFICIAL Repository for "AAF DCH Optimus Audio" Mods - Based in Microsoft Generic Driver

  • imcache

    A zero-dependency generic in-memory cache Go library

  • c-iterators

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

  • SimpleSIMD

    Easy to use SIMD accelerated Array and Span methods

  • be

    The Go test helper for minimalists

  • Project mention: New version of minimal test helper "be" with golden file support | /r/golang | 2023-06-02
  • generic-random

    Generic random generators (by Lysxia)

  • test

    A modern generic testing assertions library for Go (by shoenig)

  • graphlite

    A lightweight C++ graph library

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
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).

Generic related posts

  • Go Testing By Example (GopherCon Australia 2023)

    1 project | /r/golang | 6 Dec 2023
  • Hello, announcing v1.3.0 of my queue package: A Linked Queue implementation was added, complementing the Circular, Blocking, and Priority queues. All structures align with the standard Queue interface. Looking forward to your feedback!

    1 project | /r/golang | 26 Oct 2023
  • Seeking Insights: Tools Used in GitHub Actions for Security Code Checks and Vulnerability Detection

    2 projects | /r/golang | 6 Jul 2023
  • A simple hash table in C

    7 projects | news.ycombinator.com | 13 Jun 2023
  • New version of minimal test helper "be" with golden file support

    1 project | /r/golang | 2 Jun 2023
  • Apply generic function to every tuple element

    1 project | /r/learnrust | 22 May 2023
  • Introduction to the Gkit concurrent component

    1 project | /r/golang | 26 Apr 2023
  • A note from our sponsor - SaaSHub
    www.saashub.com | 7 May 2024
    SaaSHub helps you find the best software and product alternatives Learn more →

Index

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

Project Stars
1 Klib 4,027
2 sc 2,168
3 frunk 1,199
4 lane 860
5 mlib 792
6 lwrb 770
7 TableKit 704
8 generic-records 435
9 Observable 369
10 genesis 330
11 tst-reflect 321
12 queue 239
13 remark-directive 223
14 scroll 145
15 GenericDataSource 133
16 AAFOptimusDCHAudio-Generic 125
17 imcache 115
18 c-iterators 90
19 SimpleSIMD 90
20 be 90
21 generic-random 81
22 test 116
23 graphlite 73

Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com