/cargo-bloat-action

Track rust binary sizes across builds using Github Actions

Primary LanguageTypeScriptMIT LicenseMIT

Cargo Bloat Action 🚀

Analyse and track your Rust project binary size over time. This action runs on every pull request and gives you a breakdown of your total binary size, how much each crate contributes to that size and a list of changes to your dependency tree.

Table of Contents

Example Workflow

Check out cargo-bloat-example for a full example project. For an example pull request, see orf/cargo-bloat-example#1.

on: # rebuild any PRs and main branch changes
  pull_request:
  push:
    branches:
      - master

name: bloat

jobs:
  cargo_bloat:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@master
      - name: Install Rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
      - name: Run cargo bloat
        uses: orf/cargo-bloat-action@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}

Screenshots

Total size change

Size difference per crate

Changes in your dependency tree (cargo tree)

Why?

I think it's important to track the size of your dependencies. It's not the most important thing, but I think these metrics belong in a pull request that modifies dependencies in order to have a full picture of the impact the change makes and to make an informed decision before merging.

Contribute

All contributions are welcome!