<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/battery-packs-let-s-talk-about-crates-baby-baby-steps-dfnhmycxe" -->

---
title: Battery packs: Let's talk about crates, baby · baby steps
description: Battery packs are a proposed concept for the Rust ecosystem: curated sets of crates grouped around a common theme (CLI, backend services, embedded development,...
canonical: https://daily.dev/posts/battery-packs-let-s-talk-about-crates-baby-baby-steps-dfnhmycxe
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Battery packs: Let's talk about crates, baby · baby steps | daily.dev
og:description: Battery packs are a proposed concept for the Rust ecosystem: curated sets of crates grouped around a common theme (CLI, backend services, embedded development,...
og:url: https://daily.dev/posts/battery-packs-let-s-talk-about-crates-baby-baby-steps-dfnhmycxe
og:image: https://api.daily.dev/og/posts/dFNhMYCXe.png
og:image:alt: Battery packs: Let's talk about crates, baby · baby steps
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Battery packs: Let's talk about crates, baby · baby steps

**[Niko Matsakis - baby steps](https://daily.dev/sources/babysteps)** · 10 min read · 6 upvotes · 0 comments

## Summary

Battery packs are a proposed concept for the Rust ecosystem: curated sets of crates grouped around a common theme (CLI, backend services, embedded development, error handling, etc.) that help developers quickly find and adopt good default libraries without extensive research. Distributed as crates named `X-battery-pack`, they can be published by anyone. The `cargo-bp` tool lets you list available packs, add dependencies interactively, and even scaffold CI configuration via templates. Key goals include reducing the 'tacit knowledge' barrier for new Rust adopters, supporting crate maintainers through ecosystem funding, and fostering interoperability (e.g., async runtime traits). The design is intentionally thin — you depend on the individual crates, not the battery pack itself — so ecosystem evolution is preserved.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://smallcultfollowing.com/babysteps/blog/2026/07/15/battery-packs>

## Questions this post answers

### What is the cargo-bp tool for battery packs in Rust and how do I use it?

Cargo-bp is a prototype cargo subcommand that lets developers browse and install curated sets of recommended crates called battery packs. Install it with cargo install cargo-bp, then run cargo bp list to see available packs, or cargo bp add cli to select common CLI libraries; a battery pack is itself published as a crate whose dependencies represent the recommendations.

_Developers weighing which Rust crates to trust can follow tooling changes like this one on daily.dev._

### How does a Rust battery pack differ from depending on a curated crate directly?

A battery pack is a thin abstraction rather than a direct dependency: you depend on the individual crates it recommends, not on the battery pack crate itself. This means if a battery pack later swaps its recommendation, for example replacing docopt with clap, existing projects that already added the old dependency keep working unchanged.

_Track how Rust's crate ecosystem evolves on daily.dev before locking into a dependency choice._

### Who created the CI battery pack for Rust projects and what does it do?

The CI battery pack was proposed and developed by Jess Izen and configures a Rust project with recommended GitHub Actions setups. It is installed via cargo bp add ci, using a template system built on the minijinja templating engine to generate CI configuration files rather than adding library dependencies.

_Developers setting up Rust CI pipelines can follow ecosystem tooling updates like this via daily.dev._

## Similar posts on daily.dev

- [A Vision for Cargo](https://daily.dev/posts/a-vision-for-cargo-9f2kssnoj) · Lobsters · 1 upvotes · 0 comments
- [Supply chain nightmare: How Rust will be attacked and what we can do to mitigate the inevitable](https://daily.dev/posts/supply-chain-nightmare-how-rust-will-be-attacked-and-what-we-can-do-to-mitigate-the-inevitable-xdchrtlnw) · Hacker News · 0 upvotes · 1 comments
- [Better Batteries](https://daily.dev/posts/better-batteries-dodp9yzzv) · matklad · 6 upvotes · 0 comments
- [nik-rev/awesome-tiny-crates: A bunch of small crates that make writing Rust more fun](https://daily.dev/posts/nik-rev-awesome-tiny-crates-a-bunch-of-small-crates-that-make-writing-rust-more-fun-jr8oyfeum) · Lobsters · 7 upvotes · 0 comments

---

Tags: [#rust](https://daily.dev/tags/rust)

[View this post on daily.dev](https://daily.dev/posts/battery-packs-let-s-talk-about-crates-baby-baby-steps-dfnhmycxe)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Battery packs: Let's talk about crates, baby · baby steps","url":"https://daily.dev/posts/battery-packs-let-s-talk-about-crates-baby-baby-steps-dfnhmycxe","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/battery-packs-let-s-talk-about-crates-baby-baby-steps-dfnhmycxe"},"datePublished":"2026-07-16T16:31:34.640Z","dateModified":"2026-09-14T06:13:44.346Z","description":"Battery packs are a proposed concept for the Rust ecosystem: curated sets of crates grouped around a common theme (CLI, backend services, embedded development,...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/ad1459698a7e3cab37031cff9732c15b?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/ad1459698a7e3cab37031cff9732c15b?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Niko Matsakis - baby steps","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Niko Matsakis - baby steps","logo":"https://media.daily.dev/image/upload/logos/placeholder.jpg","url":"https://daily.dev/sources/babysteps"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/battery-packs-let-s-talk-about-crates-baby-baby-steps-dfnhmycxe","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":6},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"rust","timeRequired":"PT10M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Niko Matsakis - baby steps","item":"https://daily.dev/sources/babysteps"},{"@type":"ListItem","position":3,"name":"Battery packs: Let's talk about crates, baby · baby steps"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/battery-packs-let-s-talk-about-crates-baby-baby-steps-dfnhmycxe#faq","mainEntity":[{"@type":"Question","name":"What is the cargo-bp tool for battery packs in Rust and how do I use it?","acceptedAnswer":{"@type":"Answer","text":"Cargo-bp is a prototype cargo subcommand that lets developers browse and install curated sets of recommended crates called battery packs. Install it with cargo install cargo-bp, then run cargo bp list to see available packs, or cargo bp add cli to select common CLI libraries; a battery pack is itself published as a crate whose dependencies represent the recommendations. Developers weighing which Rust crates to trust can follow tooling changes like this one on daily.dev."}},{"@type":"Question","name":"How does a Rust battery pack differ from depending on a curated crate directly?","acceptedAnswer":{"@type":"Answer","text":"A battery pack is a thin abstraction rather than a direct dependency: you depend on the individual crates it recommends, not on the battery pack crate itself. This means if a battery pack later swaps its recommendation, for example replacing docopt with clap, existing projects that already added the old dependency keep working unchanged. Track how Rust's crate ecosystem evolves on daily.dev before locking into a dependency choice."}},{"@type":"Question","name":"Who created the CI battery pack for Rust projects and what does it do?","acceptedAnswer":{"@type":"Answer","text":"The CI battery pack was proposed and developed by Jess Izen and configures a Rust project with recommended GitHub Actions setups. It is installed via cargo bp add ci, using a template system built on the minijinja templating engine to generate CI configuration files rather than adding library dependencies. Developers setting up Rust CI pipelines can follow ecosystem tooling updates like this via daily.dev."}}]}
```

