bitvec
itsy_bitsy
Our great sponsors
bitvec | itsy_bitsy | |
---|---|---|
17 | 4 | |
1,138 | 120 | |
1.5% | - | |
0.0 | 4.1 | |
11 days ago | over 1 year ago | |
Rust | C++ | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
bitvec
-
bitcode 0.4 release - binary serialization format
I was also under the false impression that bitwise encoding was slow. When I first implemented bitcode with bitvec I got performance 20x worse than bincode. After writing my own implementation I was able to get much better performance.
-
An optimized replacement of the infamous std::vector<🅱️ool>
interesting; i'll have to compare this to my rust counterpart. your numbers indicate some clever implementations i'd love to read
-
You need to stop idolizing programming languages.
Not to mention having a lackluster std which causes you to use nonstardard not so well documented crates and a 40K LoC library to do "bit-twiddling" (the lib, https://github.com/bitvecto-rs/bitvec the blog that says "twiddle bits" https://blog.adamchalmers.com/making-a-dns-client/ and for crying out loud the blogger also used the language the author mentioned and I quote "ergonomics AND speed AND correctness")
- bit-twiddling tricks. It's the perfect example of Rust's no-compromises "ergonomics AND speed AND correctness" ideals
-
An Armful of CHERIs: Memory Safety in the processor. Do we still need safe languages with CHERI?
https://github.com/bitvecto-rs/bitvec/issues/135 is a very funny read about how to perform inttoptr with provenance retention
-
bitvec 1.0.0 Released
Technically #135 gives me license to yank affected crates, but since the only exploit is "Miri crashes exactly one test out of the suite" it's not really worth it to be a stickler. Call it a truce
-
What are some creative/advanced uses of macro_rules?
My friend Nika wrote a macro that packs a sequence of 1, 0, … tokens into a correctly structured bit-buffer, adaptable over any register type or bit-ordering, at compile time. It's now basically this whole file
-
Where do I document a published crate?
if you are interested in a user manual, you can use mdbook as well. for an example, my bitvec project uses mdbook (book.toml) and a github action (.github/workflows/gh-pages.yml) to compile the guide and host it as a github pages website. it's slightly more complicated, and i'd like docs.rs to follow hexdoc.pm's example of hosting both api docs and prose, but until then this is a pretty reasonable solution.
-
Idiomatic Way to Validate Struct Field Values
the first one
-
When and how to use traits?
i would browse the standard library, tower, nom, or my own bitvec to see layout and trait/record separation. in particular, std::io and std::net may be of use: io::Read and io::Write are pervasive examples of implementing unixy file-descriptor-like behavior in the type system
itsy_bitsy
-
Bit-vector manipulations in standard C++
No benchmarks though. I saw itsy_bitsy, but other than find and sorting (neither of which I've ever needed), it's not really that much faster than std::bitset.
-
An optimized replacement of the infamous std::vector<🅱️ool>
Another library, to possibly compare against, is: itsy.bitsy.
-
What std::bitset could have been
Are patches you mentioned related to this library https://github.com/ThePhD/itsy_bitsy ?
-
[Suggestion] How to manage a (moderately) large number of bitvectors?
This might do what you need https://github.com/ThePhD/itsy_bitsy . I think it has bitwise ops like bitset but is a dynamic bit vector with decent perf.
What are some alternatives?
nom - Rust parser combinator framework
better_bitset - A better `std::bitset` that supports scanning for bits optimally
rfcs - RFCs for changes to Rust
ac_types - Algorithmic C Datatypes
time - The most used Rust library for date and time handling.
bitset2 - std::bitset with constexpr implementations plus additional features.
byteorder - Rust library for reading/writing numbers in big-endian and little-endian.
BitLib - Provides a bit-vector, an optimized replacement of the infamous std::vector<:b:ool>. In addition to the bit-vector, the library also provides implementations of STL algorithms tailored for bit-vectors.
tower - async fn(Request) -> Result<Response, Error>
BitArray - C bit array structs and methods
hardcaml - Hardcaml is an OCaml library for designing hardware.
CRoaring - Roaring bitmaps in C (and C++), with SIMD (AVX2, AVX-512 and NEON) optimizations: used by Apache Doris, ClickHouse, and StarRocks