<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: vun</title>
    <description>The latest articles on DEV Community by vun (@vunholy).</description>
    <link>https://dev.to/vunholy</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3908215%2F9e0c8ffb-2ef1-4901-bb7f-8ba293d20f78.jpg</url>
      <title>DEV Community: vun</title>
      <link>https://dev.to/vunholy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vunholy"/>
    <language>en</language>
    <item>
      <title>Why I built cargo-feat: A 10ms solution to feature lookup friction</title>
      <dc:creator>vun</dc:creator>
      <pubDate>Fri, 01 May 2026 22:42:37 +0000</pubDate>
      <link>https://dev.to/vunholy/why-i-built-cargo-feat-a-10ms-solution-to-feature-lookup-friction-50ja</link>
      <guid>https://dev.to/vunholy/why-i-built-cargo-feat-a-10ms-solution-to-feature-lookup-friction-50ja</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Every time I add a dependency to Cargo.toml, I need to know what features&lt;br&gt;
it exposes. Current workflow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open browser&lt;/li&gt;
&lt;li&gt;Search crates.io or docs.rs&lt;/li&gt;
&lt;li&gt;Scroll through documentation&lt;/li&gt;
&lt;li&gt;Find the feature list&lt;/li&gt;
&lt;li&gt;Close browser&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Repeat 20 times a day. Annoying.&lt;/p&gt;

&lt;p&gt;Existing tools like &lt;code&gt;cargo info&lt;/code&gt; exist but are slow (80ms+).&lt;/p&gt;
&lt;h2&gt;
  
  
  The Solution
&lt;/h2&gt;

&lt;p&gt;Built cargo-feat. Single command. Shows every feature, marks defaults, &lt;br&gt;
lists what each feature pulls in.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ feat reqwest

— reqwest's features are in the following list —
    ★ default
         default-tls
         charset
         http2
         system-proxy

    — blocking
    — brotli
    — charset          (default)
    ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Done in 9.9ms.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why It's Fast
&lt;/h2&gt;

&lt;p&gt;Three optimizations:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sparse registry index&lt;/strong&gt; — reads crates.io sparse index directly &lt;br&gt;
(via Cloudflare CDN). Cargo uses same source. Faster than REST API.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Local cache first&lt;/strong&gt; — checks ~/.cargo/registry/index/ before network.&lt;br&gt;
If you've ever built with this crate, result is instant.&lt;br&gt;
After network fetch, written to cache. Next run: always fast.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Early-stop parsing&lt;/strong&gt; — scans index from end, stops at first stable &lt;br&gt;
version. O(1) entries instead of O(n versions).&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Also uses MiMalloc + simd-json for JSON parsing.&lt;/p&gt;
&lt;h2&gt;
  
  
  Benchmarks
&lt;/h2&gt;

&lt;p&gt;(Include table from README or simple comparison)&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;cargo feat reqwest        9.9 ms
cargo info reqwest       92.7 ms  (9.4x slower)
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Works same speed for serde (180+ versions). Lookup time flat &lt;br&gt;
regardless of version count.&lt;/p&gt;
&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cargo &lt;span class="nb"&gt;install &lt;/span&gt;cargo-feat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Then use it:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;feat reqwest              &lt;span class="c"&gt;# latest version&lt;/span&gt;
feat tokio 1.35.0         &lt;span class="c"&gt;# specific version&lt;/span&gt;
feat reqwest &lt;span class="nt"&gt;--deps&lt;/span&gt;       &lt;span class="c"&gt;# show dependencies&lt;/span&gt;
feat reqwest &lt;span class="nt"&gt;--internals&lt;/span&gt;  &lt;span class="c"&gt;# show internal features&lt;/span&gt;
feat serde &lt;span class="nt"&gt;--json&lt;/span&gt;         &lt;span class="c"&gt;# raw JSON output&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/vunholy" rel="noopener noreferrer"&gt;
        vunholy
      &lt;/a&gt; / &lt;a href="https://github.com/vunholy/cargo-feat" rel="noopener noreferrer"&gt;
        cargo-feat
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Fast CLI tool for Rust that instantly lists a crate’s features from crates.io without opening a browser. Shows default features, dependencies, and metadata with minimal overhead and optimized lookup performance. Built for speed-focused workflows.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;cargo-feat&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;&lt;a href="https://crates.io/crates/cargo-feat" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/e567ad023c37295193329bb58f3ee622fd946e38151301ec5eed705790347a0f/68747470733a2f2f696d672e736869656c64732e696f2f6372617465732f762f636172676f2d666561742e737667" alt="crates.io"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A fast command-line tool for Rust developers to instantly look up the available features of any crate on &lt;a href="https://crates.io" rel="nofollow noopener noreferrer"&gt;crates.io&lt;/a&gt; - directly in your terminal, with no browser required.&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Why&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;When adding a dependency, finding out what features it exposes usually means opening a browser, searching crates.io or docs.rs, and scrolling through documentation. &lt;code&gt;cargo-feat&lt;/code&gt; removes that friction: one command gives you a color-coded list of every feature the crate exposes, which ones are enabled by default, and what each feature pulls in.&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Demo&lt;/h2&gt;
&lt;/div&gt;

&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;$ feat reqwest

— reqwest's features are in the following list —
    ★ default
         default-tls
         charset
         http2
         system-proxy

    — blocking
    — brotli
    — charset          (default)
    — cookies
    — default-tls      (default)
    — deflate
    — gzip
    — http2            (default)
    — ...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Installation&lt;/h2&gt;

&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;From crates.io&lt;/h3&gt;

&lt;/div&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;cargo install cargo-feat&lt;/pre&gt;

&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;From source&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;Requires a recent stable &lt;a href="https://rustup.rs/" rel="nofollow noopener noreferrer"&gt;Rust toolchain&lt;/a&gt;.&lt;/p&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;git clone https://github.com/vunholy/cargo-feat.git
&lt;span class="pl-c1"&gt;cd&lt;/span&gt; cargo-feat
cargo build --release&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;The compiled binary will be…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/vunholy/cargo-feat" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;p&gt;Open to feedback. Built this to scratch personal itch, &lt;br&gt;
figured others had same problem.&lt;/p&gt;

&lt;p&gt;If you found it interesting, please do star it makes my day :D&lt;/p&gt;

</description>
      <category>rust</category>
      <category>cargo</category>
      <category>tooling</category>
      <category>performance</category>
    </item>
  </channel>
</rss>
