backon
Make retry like a built-in feature provided by Rust.
1.6.0
73M downloads/mo
#970 most downloaded on crates.io
Xuanwo/backon
What this package is like to depend on
Last release 10 months ago
18 Oct 2025
Ships fairly regularly
a new release about every 2 months
Some releases are documented
notes for 10 of 25 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
25 releases · first in 2022
1 release in the last 12 months
see the full history below
Release timeline
25 releases · Apr 2022 to Oct 2025Releases
latest 25-
1.6.018 Oct 2025Release notes
Open source →What's Changed
- chore(deps): bump actions/checkout from 4 to 5 by @dependabot[bot] in #209
- refactor: drop constraint on Future's Output by @Keruspe in #213
- chore: Migrate doc_auto_cfg by @Xuanwo in #215
- refactor: Bump edition to 2024 and MSRV to 1.85 by @Xuanwo in #216
- chore(deps): bump actions/setup-node from 4 to 6 by @dependabot[bot] in #214
- chore: Migrate CLAUDE.md to AGENTS.md by @Xuanwo in #217
- chore(deps): update embassy-time requirement from 0.4 to 0.5 by @dependabot[bot] in #210
- Bump to version 1.6.0 by @Xuanwo in #218
New Contributors
Full Changelog: v1.5.2...v1.6.0
-
1.5.230 Jul 2025Release notes
Open source →What's Changed
- docs: Add CLAUDE.md in repo by @Xuanwo in #202
- fix(api): Expose FuturesTimerSleeper properly by @tolbrino in #205
- chore: publish using trusted publishing by @Xuanwo in #206
- Bump to version 1.5.2 by @Xuanwo in #207
New Contributors
Full Changelog: v1.5.1...v1.5.2
-
1.5.129 May 2025Release notes
Open source →What's Changed
- docs: add wasm32 demo by @XmchxUp in #196
- fix no sleeper feature can't set sleeper in retry with context by @Sherlock-Holo in #199
- Bump to version 1.5.1 by @Xuanwo in #200
New Contributors
- @Sherlock-Holo made their first contribution in #199
Full Changelog: v1.5.0...v1.5.1
-
1.5.009 Apr 2025Release notes
Open source →What's Changed
- chore: Format code by @Xuanwo in #191
- feat: Add adjust support for Retry by @Xuanwo in #192
- chore(deps): update spin requirement from 0.9.8 to 0.10.0 by @dependabot in #188
- docs: Polish docs for backon by @Xuanwo in #193
- feat: Allow to control the max sleep time of exponential backoff by @XmchxUp in #187
- Bump version to 1.5.0 by @Xuanwo in #194
New Contributors
Full Changelog: v1.4.1...v1.5.0
-
1.4.119 Mar 2025Release notes
Open source →What's Changed
- jitter: Make jitter range to current_delay instead of min_delay by @DanielShaulov in #184
- Bump to version 1.4.1 by @Xuanwo in #185
New Contributors
- @DanielShaulov made their first contribution in #184
Full Changelog: v1.4.0...v1.4.1
-
1.4.018 Feb 2025Release notes
Open source →What's Changed
- chore: Remove unnecessary optional feature selectors by @wackazong in #167
- feat: Add std support for no-std without global rand seed by @wackazong in #169
- feat: Add embassy-based sleeper for no_std by @wackazong in #173
- feat: add Sleeper based on
futures-timerby @NumberFour8 in #154 - chore(deps): update embassy-time requirement from 0.3 to 0.4 by @dependabot in #174
- feat: add explanation of Backoff trait to README by @wackazong in #177
- feat: Mark builders to be const by @Matt3o12 in #172
- ci: Skip all features tests on windows for now by @Xuanwo in #179
- Bump to version 1.4.0 by @Xuanwo in #180
New Contributors
- @NumberFour8 made their first contribution in #154
- @Matt3o12 made their first contribution in #172
Full Changelog: v1.3.0...v1.4.0
-
1.3.022 Nov 2024Release notes
Open source →What's Changed
- refactor: Remove the Debug requirement of Backoff by @Xuanwo in #141
- feat: Implement BackoffBuilder for Backoff itself by @Xuanwo in #142
- docs: mention sleep() in blocking retry examples by @SteveLauC in #143
- docs: document custom Sleeper impl by @SteveLauC in #147
- feat: Allow users to use &XxxBuilder by @Xuanwo in #148
- chore: Polish impl of saturating_mul by @Xuanwo in #151
- docs: Backon is
adaptableby @Xuanwo in #155 - ci: Fix wasm unit test by @Xuanwo in #163
- Include license file in published crate by @ankane in #162
- fix: doc for
with_max_timesby @shikhar in #161 - feat: builder_without_max_(times|delay) by @nardoor in #160
- Bump version to 1.3.0 by @Xuanwo in #164
New Contributors
- @SteveLauC made their first contribution in #143
- @ankane made their first contribution in #162
- @shikhar made their first contribution in #161
- @nardoor made their first contribution in #160
Full Changelog: v1.2.0...v1.3.0
-
1.2.002 Sep 2024Release notes
Open source →- backon is now available under
no_std. - backon now supports use users own blocking sleeper too.
- backon now raises build time error if sleeper not provided.
What's Changed
- fix: NoopSleeper should implement default by @Xuanwo in #135
- fix: compile to fail when using DefaultSleeper with no features enabled by @bdbai in #136
- docs: Polish MaybeSleeper names by @Xuanwo in #137
- feat: Add blocking sleeper for blocking retry by @Xuanwo in #138
- Add no_std flag, hide blocking retrys behind std flag by @adrian-kong in #125
- Bump to version 1.2.0 by @Xuanwo in #139
New Contributors
- @bdbai made their first contribution in #136
- @adrian-kong made their first contribution in #125
Full Changelog: v1.1.0...v1.2.0
- backon is now available under
-
1.1.029 Aug 2024Release notes
Open source →A Letter to BackON Users
Hello everyone,
Thank you very much for using BackON!
Before releasing version
1.0.0, I thought it would be better to let users choose their own sleeper implementations, so I didn't enable them by default. However, many users encountered runtime panics. I apologize for not finding a solution that meets all requirements simultaneously: no API breaks, allowing sleeper passing at runtime, and no extra cost.So in version
1.1.0, I have addedtokio-sleeperandgloo-timers-sleepto thedefaultfeature. This change will make BackON behave like version0.4.4, allowing users to upgrade without adding new features. Additionally, I have moved the panic to occur earlier during thepollfeature instead of during thesleepcall. This makes it easier to catch issues during development rather than at runtime. Furthermore, we will only panic during thedebugprofile and do nothing in thereleaseprofile. This should protect users from panics even in the worst-case scenarios.Please let me know if you have better solutions! Thanks in advance!
Xuanwo
What's Changed
- docs: Polish display on the first page of lib.rs by @Xuanwo in #122
- chore: Make backon a workspace by @Xuanwo in #124
- docs: Add section for sleeper by @Xuanwo in #130
- docs: Add sleep in README by @Xuanwo in #131
- refactor: Enable default features to avoid unexpected panic by @Xuanwo in #132
- backon: Bump to version 1.1.0 by @Xuanwo in #133
Full Changelog: v1.0.2...v1.1.0
-
1.0.227 Aug 2024Nothing published for this version
-
1.0.126 Aug 2024Nothing published for this version
-
1.0.026 Aug 2024 -
0.5.022 Aug 2024Nothing published for this version
-
0.4.408 Apr 2024Nothing published for this version
-
0.4.308 Mar 2024Nothing published for this version
-
0.4.221 Feb 2024Nothing published for this version
-
0.4.119 May 2023Nothing published for this version
-
0.4.008 Feb 2023Nothing published for this version
-
0.3.108 Feb 2023Nothing published for this version
-
0.3.008 Feb 2023Nothing published for this version
-
0.2.017 Sep 2022Nothing published for this version
-
0.1.007 Sep 2022Nothing published for this version
-
0.0.214 Apr 2022Nothing published for this version
-
0.0.114 Apr 2022Nothing published for this version
-
0.0.012 Apr 2022Nothing published for this version