fixedbitset

A simple bitset container for Rust

Latest version: 0.5.7 registry icon
Maintenance score
27
Safety score
100
Popularity score
76
Check your open source dependency risks. Get immediate insight about security, stability and licensing risks.
Security
  Vulnerabilities
Version Suggest Low Medium High Critical
0.5.7 0 0 0 0 0
0.5.6 0 0 0 0 0
0.5.5 0 0 0 0 0
0.5.4 0 0 0 0 0
0.5.3 0 0 0 0 0
0.5.2 0 0 0 0 0
0.5.1 0 0 0 0 0
0.5.0 0 0 0 0 0
0.4.2 0 0 0 0 0
0.4.1 0 0 0 0 0
0.4.0 0 0 0 0 0
0.3.2 0 0 0 0 0
0.3.1 0 0 0 0 0
0.3.0 0 0 0 0 0
0.2.0 0 0 0 0 0
0.1.9 0 0 0 0 0
0.1.8 0 0 0 0 0
0.1.7 0 0 0 0 0
0.1.6 0 0 0 0 0
0.1.5 0 0 0 0 0
0.1.4 0 0 0 0 0
0.1.3 0 0 0 0 0
0.1.2 0 0 0 0 0
0.1.1 0 0 0 0 0
0.1.0 0 0 0 0 0
0.0.5 0 0 0 0 0
0.0.4 0 0 0 0 0
0.0.3 0 0 0 0 0
0.0.2 0 0 0 0 0
0.0.1 0 0 0 0 0

Stability
Latest release:

0.5.7 - This version may not be safe as it has not been updated for a long time. Find out if your coding project uses this component and get notified of any reported security vulnerabilities with Meterian-X Open Source Security Platform

Licensing

Maintain your licence declarations and avoid unwanted licences to protect your IP the way you intended.

Apache-2.0   -   Apache License 2.0

Not a wildcard

Not proprietary

OSI Compliant


MIT   -   MIT License

Not a wildcard

Not proprietary

OSI Compliant



fixedbitset

A simple fixed size bitset container for Rust.

Please read the API documentation here

build_status crates

Recent Changes

  • 0.5.7
    • #127 and #128: Optimize Clone::clone_from to avoid extra allocations and copies.
  • 0.5.6
    • Fixed FixedBitset not implementing Send/Sync due to the stack size shrink.
  • 0.5.5 (yanked)
    • #116: Add functions for counting the results of a set operation (union_count, intersection_count, difference_count, symmetric_difference_count) by @james7132.
    • #118: Shrink the stack size of FixedBitset. There should be zero stack size overhead compared to a Vec.
    • #119: Fix builds for wasm32.
    • #120: Add more utility functions that were previously missing from the public interface: contains_any_in_range, contains_all_in_range, minimum, maximum, is_full, count_zeroes, and remove_range.
    • #121: Add support for SIMD acceleration for AVX builds.
  • 0.5.4
    • #112: Fix undefined behavior in IntoOnes and setup testing with MIRI by @SkiFire13
  • 0.5.3 (yanked)
    • #109: Fix non-x86(_64) builds by @james7132
  • 0.5.2 (yanked)
    • #86: Explicit SIMD vectorization for set operations by @james7132.
  • 0.5.1
    • #102: Added contains_unchecked, insert_unchecked, put_unchecked, set_unchecked, toggle_unchecked, removed_unchecked, copy_bit_unchecked unsafe variants of the safe functions, by @james7132
    • #103: Added into_ones which returns a owned iterator over the one values from a bitset, by @james7132.
    • #104: Implemented DoubleEndedIterator for Union, Intersection, Difference, and SymmetricDifference , by @james7132.
  • 0.5.0
    • #74: Accelerated set operations (union, intersection, difference, symmetric difference) by using larger blocks internally, by @james7132.
    • #88: Added FixedBitSet::remove by @james7132.
    • #89: Added FixedBitSet::zeros and the Zeros iterator by @james7132.
    • #92: Added FixedBitSet::grow_and_insert function, a non-panicking version of insert that grows the underlying storage as need, by @shuoli84.
    • #98: Ones now implements DoubleEndedIterator, by @tikhu.
    • #99: Breaking change: serde now serializes and deserializes from a little-endian encoded raw byte buffer. Existing stored instances of the serialized bitsets will need to be re-encoded.
    • Bumped MSRV to 1.56.
  • 0.4.2
    • #79: Add is_clear, clarify is_empty and len documentation by @nicopap.
  • 0.4.1
    • Documentation and formatting fixes.
  • 0.4.0
    • #61: Require Rust 1.39.
    • #60: Add const FixedBitSet::new consructor by @jakobhellermann.
    • #59: Add optional serde support by @keshavsn.
  • 0.3.2
    • #18: Optimize ones using trailing_zeroes by @vks
  • 0.3.1
    • Add bit assign operators for references by @flaghacker
    • Improve assertion error messages by @lovasoa
    • Add documentation examples for with_capacity_and_blocks
  • 0.3.0
    • Add with_capacity_and_blocks by @luizirber
    • Add difference_with by @sunshowers
    • Implement Binary and Display traits by @Dolphindalt
    • Add toggle_range by @wirelyre
  • 0.2.0
    • Add assign operators for the bit operations by @jrraymond
    • Add symmetric_difference, union_with, intersection_with by @jrraymond
    • Add is_subset, is_superset, is_disjoint by @nwn
    • Add .toggle(i) method by @ShiroUsagi-san
    • Add default feature "std" which can be disabled to make the crate not link the std library. By @jonimake and @bluss
    • Require Rust 1.31.
  • 0.1.9
    • Add intersection, union, difference iterators by @jrraymond
    • Add intersection: & and union: | operator implementations by @jrraymond
    • Add Extend and FromIterator implementations (from sequences of bit indices) by @jrraymond
  • 0.1.8
    • Add missing #[inline] on the ones iterator
    • Fix docs for insert_range, set_range
  • 0.1.7
    • Add fast methods .insert_range, .set_range by @kennytm
  • 0.1.6
    • Add iterator .ones() by @mneumann
    • Fix bug with .count_ones() where it would erronously have an out-of-bounds panic for even block endpoints
  • 0.1.5
    • Add method .count_ones(range).
  • 0.1.4
    • Remove an assertion in .copy_bit(from, to) so that it is in line with the documentation. The from bit does not need to be in bounds.
    • Improve .grow() to use Vec::resize internally.
  • 0.1.3
    • Add method .put() to enable a bit and return previous value
  • 0.1.2
    • Add method .copy_bit() (by fuine)
    • impl Default
  • 0.1.1
    • Update documentation URL
  • 0.1.0
    • Add method .grow()

License

Dual-licensed to be compatible with the Rust project.

Licensed under the Apache License, Version 2.0 or the MIT license, at your option. This file may not be copied, modified, or distributed except according to those terms.