# greg7mdp/parallel-hashmap

A family of header-only, very fast and memory-friendly hashmap and btree containers.

Repository: https://github.com/greg7mdp/parallel-hashmap
Canonical: https://ross.abutalabs.com/products/parallel-hashmap
Homepage: https://greg7mdp.github.io/parallel-hashmap/
Language: C++
License: Apache-2.0
License Family: permissive
Topics: hash, tables, unordered-map, unordered-set, hash-container, parallel, multi-thread, memory-footprint, parallel-programming, concurrency
Last push: 2026-06-10T23:42:33+00:00

## Health v2 (maintenance only)
Score: 68/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 86, release rhythm 28, longevity 100
- inputs: {"age_days": 2741, "days_push": 84, "days_rel": 589, "gap_med": 61.0, "n_releases_24m": 3}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 3211, forks 311 (observed 2026-08-28T04:07:49.362889+00:00)

## What it is
A family of header-only C++ hash map/set and btree containers that serve as fast, memory-friendly drop-in replacements for std::unordered_map, std::unordered_set, std::map, and std::set. Its parallel variants support high-concurrency access from multiple threads while keeping a low memory footprint.

## Use cases
- replace std::unordered_map with a faster, lower-memory hashmap
- share a hash map across multiple threads with high concurrency
- store large key-value datasets with minimal memory overhead
- dump and reload a flat hash map to disk very quickly
- use a btree alternative to std::map and std::set
- forward declare map containers in headers without heavy includes

## When to choose
- you need a drop-in C++11+ replacement for standard hash or ordered containers with better speed and memory usage
- your workload reads and writes a shared map from many threads
- you want header-only integration with no build step
- you need fast bulk serialization of trivially-copyable flat maps

## When to avoid
- you can adopt C++20 and prefer the successor gtl library with ongoing feature development
- you need node-based guarantees or exotic allocator requirements beyond what phmap supports
- you rely on pointer-key forward declarations, which are not supported by phmap_fwd_decl.h

## Facets
- artifact type: library
- maturity: maintenance
- function: caching, serialization, concurrency
- domain: developer-tools, performance, databases
- platform: cpp, cross-platform, windows
- tags: header-only, hashmap, btree, drop-in-replacement, multithreaded, memory-efficient, abseil-inspired, algorithms, linux, macos

## Member repositories
- greg7mdp/parallel-hashmap (main) score 68

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:07:49.362889+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T18:44:57.222222+00:00, confidence not recorded.
  - readme: https://github.com/greg7mdp/parallel-hashmap (fetched 2026-08-28T04:07:49.362889+00:00, sha 128a2f8dab0f)
  - homepage: https://greg7mdp.github.io/parallel-hashmap/ (fetched 2026-08-29T09:38:10.408445+00:00, sha be3636c6ae38)
- Data as of 2026-08-30T08:39:29.467469+00:00.
