0.17.2
A small maintenance release which makes indicatif more portable and fixes some minor regressions.
- Use portable-atomic to fix build on some 32-bit platforms (#484, thanks to
@messense
)
- Implement multi-line progress message support (#443, thanks to
@happenslol
)
- Reset estimator of progress rate on backwards movement (#483, thanks to
@rlee287
)
- Fix percent initial value when there is no length (#491, thanks to
@devmatteini
)
- Bumped the MSRV to 1.56 (#482)
On behalf of @djc
and @chris-laplante
, thanks to all contributors!
0.17.1
2.5 months after the large 0.17 release, we (finally) have a release that addresses most of the regressions found in 0.17. There is ongoing work on changes in the estimation algorithm, tracked in #394, which has regressed for some users.
Note that we made some technically semver-breaking change of adding a missing Sync
bound to the ProgressTracker
bounds (#471). We're assuming that most users don't (yet) have custom ProgressTracker
impls, and that users who do have probably built one that is Sync
anyway.
Fixed regressions
- Fixed
unicode-width
feature spelling (#456)
- Only tick if the ticker is disabled (#458)
- Rework
MultiProgress
zombie line handling (#460)
- Fix incorrect link in documentation (#469, thanks to
@Jedsek
)
- Take a reference for
ProgressBar::style()
(#476, thanks to @andrewchambers
)
Other changes
- Add
HumanFloatCount
formatting option (#453, thanks to @jqnatividad
)
- Add
Sync
bound to ProgressTracker
(#471)
- Update ProgressDrawTarget documentation (#472, thanks to
@AronParker
)
- Correct mis-naming of variables in wrap_async_read (#473, thanks to
@octylFractal
)
- Remove
write_all()
impl from ProgressBarIter
's Write
impl (#478, thanks to @hexagonal-sun
)
- Document last char/string in tick style being the "final" state (#479, thanks to
@MarijnS95
)
Thanks from @djc
and @chris-laplante
to all contributors!
0.17.0
indicatif is one of the most popular terminal progress bar libraries in the Rust ecosystem. More than a year after the 0.16.0 release, we're happy to finally release 0.17. In the past year, the indicatif team has grown to two maintainers, since @chris-laplante
joined @djc
as a maintainer. We also now have a Discord channel.
Apart from many small API additions and fixes, particular effort has gone into reducing the overhead for reporting progress. To this end, we've removed some of the explicit rate limiting APIs in favor of a single refresh rate in the ProgressDrawTarget
. We now set a rate limit by default (50ms) that should drastically reduce overhead for most applications while being more than enough for most terminal applications. Additionally, position updates are now synchronized by using atomic integer APIs instead of a mutex. In a basic test the simplest possible progress bar is about 95x faster on 0.17.0 compared to 0.16.2.
We've made many changes to the way MultiProgress
collections work. You no longer need to explicitly join()
the MultiProgress
, there are more ways to insert new progress bars into the collection, and many correctness improvements have been made, in part to more effort having gone into testing the crate.
Additionally, we've reduced our dependency footprint, removing lazy_static and regex from our required dependencies.
Additions
- Add ability to add custom template keys (#301, thanks to
@redzic
)
- Allow custom template keys to maintain state (#420, thanks to
@1Dragoon
)
- Add
HumanCount
and template keys to print more humane position/length (#340, thanks to @dabreegster
)
- Remove extra new line after progress bar (#338 with fixes in #343, #350 and #356, thanks to
@sigmaSd
)
... (truncated)