Crates / Compare / bstr vs compact_str
Rust crates side by side · data Oct 24, 2026
bstr vs compact_str
Short answerBy steady daily use, bstr is bigger: 1,252,630 real downloads a day against 712,106 for compact_str (1.8x). 676 crates depend on bstr and 575 on compact_str. bstr last shipped 2 months ago, compact_str 3 months ago.
bstr
EstablishedEstablished and steady.
676 crates depend on it; downloads don't spike on releases.
A string type that is not required to be valid UTF-8.
compact_str
EstablishedEstablished and gaining.
575 crates depend on it; no release in the last 90 days, so its count is all steady use.
A memory efficient string type that transparently stores strings on the stack, when possible
bstrcompact_str · 100% = that crate's normal quiet day, so a spike to 300% is triple its usual traffic
Every number, side by side
| Same window, same method | bstr | compact_str |
|---|---|---|
| Real downloads a day | 1,252,630 | 712,106 |
| Crates that depend on it | 676 | 575 |
| Last release | 1.13.1, 2 months ago | 0.10.0, 3 months ago |
| Trend vs the field | +2% | +13% |
| Release-window share | 2.1% | 0.0% |
| Downloads in the window | 111,929,713 | 67,329,751 |
| All-time downloads | 471,857,567 | 190,826,276 |
| Versions published | 53 | 23 |
| License | MIT OR Apache-2.0 | MIT |
| MSRV | 1.65 | 1.71 |
| First published | Oct 9, 2018 | Sep 20, 2021 |
Which to pick
- Downloads tell you what is common, not what fits. Each crate's own description above says what it is for; when the jobs differ, pick by the job.
- When both fit, prefer the one more crates depend on (bstr, 676 dependents): more eyes, more answered questions, and you may already have it in your tree.
- Check the release dates against your own pace: bstr 2 months ago, compact_str 3 months ago.
Also in this space
Method
Real downloads = the median day with no release that day or the day before, from the crates.io API (Jul 27, 2026 to Oct 23, 2026). Raw crates.io counts include CI and bots and run high (why); the method is from our 90-day study.
Up next
Another comparison: Same method, same window. Foundational and steady vs widely used and steady.reqwest vs ureqRead it next →Also worth your time