Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
@ably/bloomit
Advanced tools
Space efficient bloom filter based on the bloom-filters npm package.
@ably/bloomit
A fork of the bloomit package to fix a few issues (eg https://github.com/kblauhut/bloomit/issues/4 ) and switch from xxhash to farmhash.
Original readme follows below.
bloomit is a Space efficient bloom filter based on the bloom-filters npm package.
The main motivation for this package was to reduce the memory usage of the bloom filter by using a bitmap instead of an array of javascript numbers. This should result in a theoretical memory reduction by a factor of 64.
I have also edited the export to use a Uint8Array which encodes all needed values and can be used to send it over the web efficiently.
add(element: string) -> void
: add an element into the filter.has(element: string) -> boolean
: Test an element for membership, returning
False if the element is definitively not in the filter and True is the element
might be in the filter.equals(other: BloomFilter) -> boolean
: Test if two filters are equals.rate() -> number
: compute the filter's false positive rate (or error rate).export() -> Uint8Array
: export the filter as an Uint8Arrayinport(filterUint8Array: Uint8Array) -> BloomFilter
: Create a filter from a
exporterd Uint8Arrayconst { BloomFilter } = require('bloomit');
// create a Bloom Filter with a size of 10 and 4 hash functions
let filter = new BloomFilter(10, 4);
// insert data
filter.add('paul');
filter.add('kolja');
filter.add('carl');
// lookup for some data
console.log(filter.has('paul')); // output: true
console.log(filter.has('xiaomei')); // output: false
// print the error rate
console.log(filter.rate());
// alternatively, create a bloom filter optimal for a number of items and a desired error rate
const items = ['paul', 'kolja', 'carl'];
const errorRate = 0.04; // 4 % error rate
filter = BloomFilter.create(items.length, errorRate);
// or create a bloom filter optimal for a collections of items and a desired error rate
filter = BloomFilter.from(items, errorRate);
// Export the filter
const exportedFilter = filter.export();
// Import the filter
filter = BloomFilter.import(exportedFilter);
FAQs
Space efficient bloom filter based on the bloom-filters npm package.
The npm package @ably/bloomit receives a total of 8,514 weekly downloads. As such, @ably/bloomit popularity was classified as popular.
We found that @ably/bloomit demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.