NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #411 most downloaded on crates.io
Addresses memory by bits, for packed collections and bitfields
Last release 3 months ago
18 Jun 2026
Ships unpredictably
gaps range from 1 weeks to 3.9 years
Rarely documented
notes for 2 of 27 stable releases
33 versions withdrawn
withdrawn after publishing
8 years old
61 releases · first in 2018
Nothing published for this version
Performance regressions have been reported between the development series 0.20 onwards and 1.0. It appears at least some of these regressions are due
Performance regressions have been reported between the development series 0.20
onwards and 1.0. It appears at least some of these regressions are due to the
removal of the #[inline] attribute on bitvec public functions.
This attribute has been applied to all bitvec functions. You may see
regressions in size of your final artifact, but you should also see improvements
in your runtime speed. This is being tracked in [sharksforarms/deku#246].
The bits![static mut …] invocation has been made unsafe at the invocation
site, in response to [Issue #156] filed by GitHub user [@SimonSapin].
This is technically an API break (formerly safe code now requires an unsafe
block) but as no run-time behavior or compile-time types have changed except
for this, and Rust considers breaking incorrect code to be acceptable within
SemVer patches, I am publishing it as a patch.
GitHub user [@dtolnay] fixed incorrect serde behaviors in
[Pull Request #185]. This behavior was first reported in [Issue #167] by
GitHub user [@Nelarius].
Compilation no longer depends on environment variables set by Cargo, as requested in [Pull Request #162] by GitHub user [@rocallahan].
The bitvec![val; len] macro can again take len as a runtime value as well
as a compile-time constant. [Pull Request #160] was provided by GitHub user
[@coolreader18].
The return types of slice::Iter::by_{refs,vals} are restored to named types,
rather than impl Iterator... opaque types. This allows them to be used
directly in other sites. This defect was reported in [Issue #169] by GitHub
user [@dignifiedquire].
One column per quarter.
🚨 THIS IS A BREAKING CHANGE RELEASE! 🚨
🚨 THIS IS A BREAKING CHANGE RELEASE! 🚨
Your code has broken. You will need to change it in order to use this. This work on your part is worth it.
This release has a great deal of changes from the 0.22 development series!
Most breaking changes should have reasonable error messages indicating how they
can be repaired.
Removed APIs do not have deprecation notices! Use of removed APIs will fail to compile. You must check this changelog, or the crate documentation, to find out appropriate replacements.
The <O, T> type parameter pair that has existed since 0.10 is reversed
to be <T, O>! This will cause all of your type definitions to fail, as
suddenly all of your chosen type arguments do not satisfy the demanded traits.
This change was made in accordance with [Issue #136], requested by GitHub user [@changhe3].
1.56.BitField now supports signed integers! BitMemory is completely removed.BitSlice::from_slice{,_mut} are now infallible constructors, and panic when
the source is too long. The original fallible behavior is renamed to
BitSlice::try_from_slice{,_mut}.{Bit,}DomainMut types have been removed. The {Bit,}Domain types now
take a Mutability type parameter instead. The .{bit_,}domain{,_mut}()
methods on BitSlice exist as normal, but have changed their return types to
specify a Const or Mut type parameter rather than {Bit,}Domain or
{Bit,}DomainMut, respectively.Iter::by_{ref,val} are renamed to by_{ref,val}s, to prevent collision with
Iterator::by_ref.&=, |=, and ^= operators has been
changed! They now operate directly on data structures, rather than routing
through iterators. If you want to perform boolean arithmetic using arbitrary
bool streams, use iterator combinators like
.iter_mut().zip(stream).for_each(|(mut orig, new)| *orig ^= new). This
change allows the arithmetic implementations to be accelerated when working
between bit-slices of equal types.BitSlice::set_all is removed, as the standard-library API [T]::fill
replaces it.BitSlice::offset_from is removed. Use .as_bitptr().offset_from().BitSlice::as_raw_slice is removed. Use .domain() to access the underlying
memory.Module and type documentation have been lifted into the doc/ tree as Markdown
files. The [user guide], in book/ has been more thoroughly rewritten.
Please file any problems or confusions about the documentation as an issue! The documentation is a project artifact equally, if not more, important as the Rust library.
As part of the migration of incidental logic out of bitvec, the following
utility libraries have been updated:
funty 2.0 provides a more comprehensive coverage of the language primitives.wyz 0.5 contains more logic formerly in the utility module, as well as a
stronger system for generalizing over references.bitvec’s first three and a half years of development used the zero-dot series
as it explored its behavior. These versions are now deprecated and will not
receive further support. They are listed only in summary, and may be removed
from crates.io in the future.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →