Eighteen small utilities Rust developers keep rebuilding by hand — and eight of them are open crate ideas

Asked (summary)

What small missing utilities do Rust developers repeatedly ask for on Reddit and GitHub that don’t yet exist as popular crates? Focus on concrete pain signals — “I wish”, “I ended up writing my own”, “boilerplate”, “why isn’t this supported” — and well-upvoted issues asking for small features.

The shortlist below holds 18 normalized utility opportunities distilled from 392 Reddit-oriented results, 48 GitHub issue/discussion results and 1,538 broader validation results (issue trackers, crate indexes, mailing lists, blogs, forums); it is deliberately selective, not an exhaustive universe of Rust requests. Evidence spans 5 source hosts, signals run from 2018 to 2025, and no single URL backs more than 11.1% of the rows. “Support” below means the strongest visible count on one page — upvotes or thread messages — so it is directional, not a comparable popularity metric across venues.

The opportunity matrix: visible support vs independent corroboration

Bar length = strongest visible support on the strongest page (upvotes or thread messages — not equivalent units). Dots at right = independent pages found. Colour = our read of the opportunity. Hover a bar for the pain quote and workaround.
strong crate opportunity better suited to upstream API/tooling partial or niche solution already exists • = one independent page found (1–3)

What the chart can’t say

The loudest single signal is FFI: “passing nothing is surprisingly difficult” drew 137 points for a safe C++ span → Rust slice adapter, and the same thread yields a second row for an FFI-safe CppSpan type — reddit.com
The most corroborated theme is panic policy: a configurable unwrap()/expect() lint with “// PANIC:” justifications was found on 3 independent pages and is a 42+ message kernel review thread — but note mailing-list mirrors, not 3 separate communities — lore-kernel.gnuweeb.org
rust-analyzer’s author describes hand-rolling a FileSet because globset/ignore semantics “turned out messy in practice” — a reusable, introspectable include/exclude PathSet is an open gap at 14 points — reddit.com
Several rows are not truly nonexistent: the numeric-enum TryFrom/Into derives and the fmt! foreign-type adapter exist as unmerged kernel patch series under review, and no_panic / string-interner gaps are partially served by niche crates — lore.freedesktop.org

Where a crate author should look first

Grouped by our read of each row. Status notes keep partial / stale / under-review rows honest: none of these is proven absolutely nonexistent.

All 18 rows

OpportunityGroupSupportPagesStatus / availabilityLatest signalSource

Method: 18 shortlisted Rust utility opportunities, one row per normalized request, distilled from 392 Reddit-oriented, 48 GitHub, and 1,538 broader validation search results across 5 source hosts. “Support” is the strongest visible count on the cited page (upvotes or thread messages), shown as-is and not comparable across venues; “pages” counts independent pages found per theme (mirrors may overlap). Signals span 2018–2025; some rows lack a dated signal. Pain quotes and workarounds are condensed for space; full wording is on the linked pages. Grouping into strong / upstream / partial is editorial.

This report was generated automatically by Keenable SELECT at a user's request, from publicly available web sources linked herein. Keenable does not review, verify, or endorse its contents and makes no representation as to accuracy, completeness, or timeliness; AI-based extraction may contain errors. Nothing in this report is investment, legal, financial, or other professional advice. All trademarks and referenced content remain the property of their respective owners; no affiliation or endorsement is implied. To report an error, rights concern, or request removal: legal@keenable.ai.

Keenable SELECTAsk your own question
Made with Keenable SELECT