Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
d8d7894
Bump benchmark deps
pczarn Mar 5, 2026
40b2d3f
Fix warnings in benches
pczarn May 13, 2026
1c856ac
Create docs/ directory for documentation
pczarn May 13, 2026
56eedf3
Begin fuzzing with afl
pczarn May 13, 2026
5126214
Create a Cargo workspace
pczarn May 13, 2026
287e225
Bump MSRV to 1.85
pczarn May 13, 2026
2947b65
Fixes to set for `fn clear` / `fn fill`
pczarn May 13, 2026
5e841f4
Move README.md to vec/
pczarn May 13, 2026
86392a0
Split the `set` library into multiple files
pczarn May 13, 2026
ad7066c
Remove nanoserde support
pczarn May 13, 2026
28765e4
Get common package version and rust-version in one place
pczarn May 13, 2026
dc6d0b9
Allow fuzzing for bit-set
pczarn May 13, 2026
3826331
Fix the problematic serde_std and serde_no_std feature flags
pczarn May 13, 2026
9a67668
Fix github CI workflow cases
pczarn May 13, 2026
08c8d1f
Formatting; types
pczarn May 13, 2026
a039419
Move statics to the `util`s module
pczarn May 13, 2026
104197c
Use `cargo rdme` for bit-matrix
pczarn May 13, 2026
9ce80da
Parameterize bit-matrix over bit blocks
pczarn May 13, 2026
af666fe
Maintain bit-matrix's feature flags and deps
pczarn May 13, 2026
c051ec5
Fix typo in benchmark names
pczarn May 13, 2026
b1afc20
Add fixes for clippy
pczarn May 13, 2026
0dbbdfa
Enable clippy for VS Code
pczarn May 13, 2026
be55ba3
Clarify comments on unsafety, add them in all places
pczarn May 14, 2026
6337288
Introduce additional clippy lint checks
pczarn May 15, 2026
3362361
Formatting
pczarn May 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 16 additions & 7 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,16 @@ jobs:
- uses: actions/checkout@v5
- name: Build
run: cargo build --verbose
- name: Build with serde
run: cargo build --features serde --verbose
- name: Build with miniserde
run: cargo build --features miniserde --verbose
- name: Build with borsh
run: cargo build --features borsh --verbose
- name: Run tests
run: cargo test --verbose
- name: Run miniserde tests
run: cargo test --features miniserde --verbose
- name: Run nanoserde tests
run: cargo test --features nanoserde --verbose
- name: Run borsh tests
run: cargo test --features borsh --verbose

Expand Down Expand Up @@ -54,19 +58,25 @@ jobs:
strategy:
fail-fast: false
matrix:
rust: [1.82.0, 1.83.0]
rust: [1.85.0, 1.86.0]
timeout-minutes: 45
steps:
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{matrix.rust}}
- run: cargo build
- run: cargo build --features serde
- run: cargo build --features serde --no-default-features
- run: cargo build --features miniserde
- run: cargo build --features borsh
- run: cargo build --features borsh,serde
- run: cargo build --features borsh,serde,miniserde
- run: cargo build --features borsh,serde,miniserde --no-default-features
- run: cargo test
- run: cargo test --features serde
- run: cargo test --features nanoserde
- run: cargo test --features miniserde
- run: cargo test --features borsh
- run: cargo test --features borsh,serde,miniserde
- run: cargo test --features borsh,serde,miniserde --no-default-features

clippy:
runs-on: ubuntu-latest
Expand All @@ -79,7 +89,6 @@ jobs:
- run: cargo clippy --workspace --tests --examples
- run: cargo clippy --workspace --tests --examples --features serde
- run: cargo clippy --workspace --tests --examples --features miniserde
- run: cargo clippy --workspace --tests --examples --features nanoserde
- run: cargo clippy --workspace --tests --examples --features borsh

docs:
Expand Down
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"rust-analyzer.cargo.features": ["serde", "nanoserde"]
"rust-analyzer.check.command": "clippy",
"rust-analyzer.cargo.features": ["serde", "borsh", "miniserde"]
}
50 changes: 20 additions & 30 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,34 +1,24 @@
[package]
name = "bit-vec"
version = "0.9.1"
authors = ["Alexis Beingessner <a.beingessner@gmail.com>"]
license = "Apache-2.0 OR MIT"
description = "A vector of bits"
repository = "https://github.com/contain-rs/bit-vec"
homepage = "https://github.com/contain-rs/bit-vec"
documentation = "https://docs.rs/bit-vec/"
keywords = ["data-structures", "bitvec", "bitmask", "bitmap", "bit"]
readme = "README.md"
edition = "2021"
rust-version = "1.82"
[workspace]

[dependencies]
borsh = { version = "1.6.0", default-features = false, features = ["derive"], optional = true }
serde = { version = "1.0", default-features = false, features = ["derive", "alloc"], optional = true }
miniserde = { version = "0.1", optional = true }
nanoserde = { version = "0.2", optional = true }
members = [
"vec",
"set",
"matrix",
]

[dev-dependencies]
serde_json = "1.0"
rand = "0.9"
rand_xorshift = "0.4"
exclude = [
"fuzz",
]

[features]
default = ["std"]
serde_std = ["std", "serde/std"]
serde_no_std = []
borsh_std = ["borsh/std"]
std = ["serde?/std"]
resolver = "2"

[package.metadata.docs.rs]
features = ["borsh", "serde", "miniserde", "nanoserde"]
# add debug info for profiling?
[profile.release]
debug = false

[workspace.dependencies]

[workspace.package]
# shared version of all public crates in the workspace
version = "0.10.0"
rust-version = "1.85.0"
137 changes: 0 additions & 137 deletions README.md

This file was deleted.

1 change: 1 addition & 0 deletions README.md
2 changes: 2 additions & 0 deletions RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ Version 0.10.0 (TO BE RELEASED)

<a id="v0.10.0"></a>

- removed nanoserde support

Version 0.9.1
==========================

Expand Down
2 changes: 2 additions & 0 deletions fuzz/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/out

26 changes: 26 additions & 0 deletions fuzz/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
[package]
name = "bit-fuzz"
version = "0.1.0"
authors = ["Dawid Ciężarkiewicz <dpc@dpc.pw>", "Peter Blackson <pioczarn@gmail.com>"]
edition = "2021"
publish = false

[package.metadata]
cargo-fuzz = true

[features]
default = ["afl"]
afl_fuzz = ["afl"]
honggfuzz_fuzz = ["honggfuzz"]

[dependencies]
honggfuzz = { version = "0.5", optional = true }
afl = { version = "0.17", optional = true }
bit-vec = { path = "../vec/" }
bit-set = { path = "../set/" }
bit-matrix = { path = "../matrix/" }
# smallvec = "1.15"

[[bin]]
name = "bit_ops"
path = "fuzz_targets/bit_ops.rs"
1 change: 1 addition & 0 deletions fuzz/LICENSE-APACHE
1 change: 1 addition & 0 deletions fuzz/LICENSE-MIT
9 changes: 9 additions & 0 deletions fuzz/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# fuzzer for bit-vec, bit-set and bit-matrix

Based on fuzzing in `smallvec`.

# fuzzing

```sh
cargo afl build --release --bin bit_ops --features afl && cargo afl fuzz -i in -o out target/release/bit_ops
```
Loading