Skip to content
CAI
Software that uses CAICheck a score

xacrimon/dashmap

63.4

Adequate · 30 September 2026

4.1k

lines of production code

Rust

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a Rust library centered on the \dashmap-shard\ component, which provides optimized hash map functionality using the \hashbrown\ crate. Its current state reflects a long-term maintenance trajectory, having shed legacy build infrastructure and CI configurations in favor of keeping dependencies current. Recent activity indicates a focus on stability and security, characterized by extensive dependency updates and regression fixes rather than new feature development.

How it got here

2019 — hashbrown integration

2 changes.

The period focused on integrating the hashbrown crate into the project. The initial import was followed by renaming the crate to dashmap-shard and implementing an optimized hash lookup method.

2020 — Removal of legacy project metadata and CI configuration

1 change.

The \dashmap-shard\ directory has had its legacy project scaffolding removed, including the Travis CI configuration, changelog, license files, and benchmark suite. This cleanup eliminates obsolete build and documentation artifacts that are no longer maintained in this shard.

March 2025 — Dependency updates and security regression

3 changes.

This period was dominated by extensive dependency updates, with 149 commits modifying four manifests. A significant behavioral change affected the entire repository, involving 62 commits that included nine fixes. Additionally, a security regression was detected, although no specific commits were attributed to addressing it within this timeframe.

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 65 → 63 (-1.8)
  • Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 96 → 96 (+0.0)
  • Architecture 98 → 100 (+1.8)
  • Maturity 48 → 48 (-0.6)
  • Readiness 60 → 61 (+0.7)
  • Security 98 → 91 (-7.1)

Resolved (3)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no licence statement (README.md)
  • Documentation: no usage examples (README.md)

New (5)

  • Dependency hygiene PARTLY measured — Cargo dependencies read, dependency currency not (crates.io unreachable)
  • End-of-life runtime: Rust 1.70
  • Inconsistent return type for 'try' variants. While get returns a reference type (Ref/RefMut), try_get returns a wrapper enum TryResult. This forces the caller to unwrap or match on TryResult to access the value, whereas get (which can panic or block) returns the value directly. This breaks the symmetry between 'safe' and 'try' access patterns, making try_get harder to use in generic code or pipelines compared to get.
  • Inconsistent return types for removal operations. DashMap::remove returns a GuardOwningIter (likely for iterating over removed items or handling cleanup), while DashSet::remove returns the removed key K. This asymmetry makes it difficult to write generic code that handles removal for both maps and sets, as the return types are unrelated.
  • Naming inconsistency for owned vs borrowed key entry points. entry takes an owned K, while entry_ref takes a borrowed Q. However, the standard library uses entry for owned and entry_ref is not a standard name (usually entry with a lifetime or a separate method). More importantly, DashMap has get/get_mut for borrowed keys, but entry requires owned keys. This creates a friction point where users must clone keys to use the entry API, whereas get works with borrowed keys. The naming entry_ref suggests a direct counterpart to entry, but the existence of entry (owned) and entry_ref (borrowed) is consistent, yet the lack of a get-like entry API for borrowed keys in the main entry method is a design inconsistency with get/get_mut.

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

xacrimon/dashmap was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 30 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 366ce7e7872866a06de66eb95002fa6cf2c117a7 — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-cb25ca4feafa.