You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Removed deprecated set ops such as union_with. Use the corresponding operators |=.
MSRV increased to 1.56
deserialize_from validates inputs. It some cases it can be 4x slower. For workloads that are heavy in deserialization from trusted sources migrate to deserialize_unchecked_from
Performance optimizations
from_sorted_iter and append are exponentially faster. They should be preferred over collect and extend whenever adding monotonically increasing integers to the set as it's about 2-2.5x faster.
Other performance optimizations.
Min
Mean
Max
Iteration
6%
57%
125%
And
0%
7%
22%
Or
0%
10%
33%
Sub
0%
9%
39%
Xor
4%
90%
209%
New features
rank Returns the number of integers that are <= value. rank(u64::MAX) == len()
select Returns the nth integer in the set or None if n <= len()
union_lenintersection_len ... and so on. Compute the cardinality of a set operation without materializing it. Usually about twice as fast as materializing the bitmap.
implemented DoubleEndedIterator
implemented ExactSizeIterator (on 64 bit targets only)
Here's what I think is still left before next release
*_withdeprecated methods #200Create bench comparison to CRoaring #204(deferred to next release)Release notes
Breaking changes
union_with. Use the corresponding operators|=.deserialize_fromvalidates inputs. It some cases it can be 4x slower. For workloads that are heavy in deserialization from trusted sources migrate todeserialize_unchecked_fromPerformance optimizations
from_sorted_iterandappendare exponentially faster. They should be preferred overcollectandextendwhenever adding monotonically increasing integers to the set as it's about 2-2.5x faster.New features
rankReturns the number of integers that are <= value. rank(u64::MAX) == len()selectReturns thenth integer in the set orNoneifn <= len()union_lenintersection_len... and so on. Compute the cardinality of a set operation without materializing it. Usually about twice as fast as materializing the bitmap.DoubleEndedIteratorExactSizeIterator(on 64 bit targets only)Other
Perf numbers are for pairwise operations on collections of bitmaps from real datasets.
Pairwise as in: B1 ∩ B2, B2 ∩ B3, ... BN-1 ∩ BN