Crates.io | probably |
lib.rs | probably |
version | 0.3.1 |
source | src |
created_at | 2020-10-31 23:10:58.320421 |
updated_at | 2020-12-03 19:17:38.535327 |
description | A library with various approximate computing algorithms |
homepage | https://github.com/aeshirey/probably/ |
repository | https://github.com/aeshirey/probably/ |
max_upload_size | |
id | 307355 |
size | 202,071 |
Approximate computing "is a computation technique which returns a possibly inaccurate result rather than a guaranteed accurate result," which "can provide disproportionate gains in performance and energy, while still achieving acceptable result accuracy."
This library is a collection of several approximate computing algorithms written in Rust. The goals are:
NOTE that I did not write any of these algorithms - they are all implemented by other talented Rustaceans, the repositories for which are linked below. I have, however, added some functionality (serialization/deserialization, exposing new initialization functions, etc.), and I did implement the Rust version from C#. All source code is MIT-licensed.
To use probably
in your Cargo.toml:
probably = "0.2.0"
To include serialization of data structures, include the with_serde
feature:
probably = { version = "0.2.0", features = ["with_serde"] }
The algorithms implemented in this library and on the roadmap fall into one of several categories:
These algorithms approxmate counting the number of items in a set within some approximate acceptable error.
rust-hyperloglog
rust-count-min-sketch
to serve as a frequency table of eventsThese algorithms determine if an item n exists in the set N, guaranteeing no false negatives at the cost of some false positives.
bloom_filter
rust-cuckoofilter
. like Bloom filter, but can delete items. Can use lower space overhead than BF.perfolizer
C#
postmates/quantiles
postmates/quantiles
postmates/quantiles