awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
troydhanson avatar

troydhanson/uthash

0
View on GitHub↗
4,732 stars·978 forks·C·12 views

Uthash

uthash is a macro-based data structure library for C that provides header-only implementations of hash tables, linked lists, stacks, and dynamic arrays. It allows for key-based lookups and organized data storage without requiring external library linking.

The library uses intrusive linking to embed metadata directly into user-defined structures via macros. This approach enables in-place structure extension, allowing hash and link fields to be added to existing structs without separate memory allocations for container nodes.

The project also covers specialized memory and data stream management, including fixed-size circular buffers for continuous data flows and string buffers with automatic memory allocation. These utilities facilitate data handling in resource-constrained environments and embedded systems.

Features

  • Hash Table Implementations - Provides a complete macro-based implementation of hash tables for key-based lookups in C.
  • Hash Tables - Provides efficient key-value lookups in C using hash-based indexing for memory-resident data.
  • Structure Extensions - Enables in-place addition of hash and link fields to user-defined structs via macros.
  • C Data Structure Libraries - Implements essential data structures like linked lists and stacks specifically for the C language.
  • C Libraries - Provides a portable collection of C libraries for fundamental data structure management.
  • Intrusive Containers - Implements intrusive containers that embed linking metadata directly within structures to optimize memory.
  • Header-Only Libraries - Provides a header-only distribution model to eliminate separate compilation and linking steps.
  • Dynamic Array Management - Provides growable collections of data with indexed access using dynamic array management.
  • Automatic Growth Buffers - Ships a utility for manipulating text sequences with automatic memory allocation and buffer growth.
  • Dynamic String Buffers - Provides specialized buffers for manipulating text sequences with automatic memory allocation.
  • Embedded Data Handling Libraries - Provides lightweight data interchange utilities optimized for resource-constrained embedded environments.
  • C Memory Management - Handles low-level allocation and cleanup of dynamic memory buffers within C.
  • Circular Memory Buffers - Implements high-performance circular memory buffers for continuous data stream management.
  • Stacks - Implements LIFO stack structures for managing sequential data retrieval.
  • Linked List Implementations - Implements sequential data structures using memory references for efficient element insertion and removal.
  • Ring Buffers - Provides fixed-size circular queues to manage continuous data stream flows.
  • Data Structures - Generic hash and list structures.
  • Developer Tools and Utilities - Hash table implementation for C structures.

Star history

Star history chart for troydhanson/uthashStar history chart for troydhanson/uthash

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Uthash

These projects share indexed features with Uthash. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • attractivechaos/klibattractivechaos avatar

    attractivechaos/klib

    4,679View on GitHub↗

    klib is a comprehensive C standard library extension and data structure toolkit. It provides a set of fundamental tools for memory management, data organization, and general-purpose utility functions for standalone C applications. The project features specialized capabilities for bioinformatics sequence analysis, including the parsing of FASTA, FASTQ, and Newick formats and the implementation of Smith-Waterman sequence alignment and Hidden Markov Models. It also includes a mathematical computation library for numerical routines and expression evaluation, as well as a lightweight HTTP and FTP

    C
    View on GitHub↗4,679
  • aalhour/c-sharp-algorithmsaalhour avatar

    aalhour/c-sharp-algorithms

    6,159View on GitHub↗

    This project is a C# algorithms library and collection of data structures. It serves as a computer science reference providing practical implementations of classic sorting, searching, and graph traversal patterns. The library includes a dedicated string processing toolkit for analyzing text similarity, computing edit distances, and managing prefix-based searches. It also features a graph theory implementation for modeling network relationships and calculating shortest paths. The codebase covers a broad range of capabilities, including the management of linear and hierarchical collections, tr

    C#
    View on GitHub↗6,159
  • montagejs/collectionsmontagejs avatar

    montagejs/collections

    2,094View on GitHub↗

    Collections is a JavaScript data structure library that provides unified interfaces for sets, maps, ordered sequences, and key-value storage. It includes capacity-bounded eviction mechanisms, categorical grouping, and set membership collections designed to organize and manage complex datasets through consistent traversal methods. The library offers advanced primitives such as circular ring buffers that automatically discard old entries upon reaching capacity limits, and comparator-driven sorted sequences maintained through binary search positioning. It supports persistent state snapshotting v

    JavaScript
    View on GitHub↗2,094
  • uscilab/cerealUSCiLab avatar

    USCiLab/cereal

    4,676View on GitHub↗

    Cereal is a C++ serialization library and object persistence tool used to convert data types and containers into formats for storage or transmission. It is implemented as a header-only library, allowing it to be included directly in source code without the need for a compiled binary. The library supports multiple data representations, including binary, XML, and JSON. It provides the ability to define custom archives, enabling the development of specialized output formats to control how data is encoded and stored. The system handles the conversion of complex objects through template-based ser

    C++c-plus-pluscerealserialization
    View on GitHub↗4,676
Compare all 30 related projects→

Frequently asked questions

What does troydhanson/uthash do?

uthash is a macro-based data structure library for C that provides header-only implementations of hash tables, linked lists, stacks, and dynamic arrays. It allows for key-based lookups and organized data storage without requiring external library linking.

What are the main features of troydhanson/uthash?

The main features of troydhanson/uthash are: Hash Table Implementations, Hash Tables, Structure Extensions, C Data Structure Libraries, C Libraries, Intrusive Containers, Header-Only Libraries, Dynamic Array Management.

Which projects share features with troydhanson/uthash?

Projects with overlapping indexed features include: attractivechaos/klib — klib is a comprehensive C standard library extension and data structure toolkit. It provides a set of fundamental… aalhour/c-sharp-algorithms — This project is a C# algorithms library and collection of data structures. It serves as a computer science reference… montagejs/collections — Collections is a JavaScript data structure library that provides unified interfaces for sets, maps, ordered sequences,… uscilab/cereal — Cereal is a C++ serialization library and object persistence tool used to convert data types and containers into… redis/hiredis — Hiredis is a minimalistic C client library designed to send commands and receive responses from Redis servers using a… boostorg/boost — Boost is a collection of portable, high-performance source libraries that extend the C++ standard library. It provides…