Security News
PyPI Introduces Digital Attestations to Strengthen Python Package Security
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
A really fast LRU cache for array items (numeric keys)
npm install array-lru
Credit to @dominictarr for telling me about this neat algorithm for LRUs.
var alru = require('array-lru')
var lru = alru(512) // create a lru that can contain 512 values
lru.set(42, {hello: 'world'})
console.log(lru.get(42)) // {hello: 'world'}
It works similar to a normal hash table except when a bucket is full it will evict the oldest one from the bucket to make room for the new value.
var lru = alru(size, [options])
Create a new LRU instance. Options include:
{
collisions: 4, // how many hash collisions before evicting (default 4)
evict: fn, // call this function with (index, value) when someone is evicted
indexedValues: false // set to true if your values has a .index property
}
Size should be a multiple of collections
. If not, it will be coerced into one.
var value = lru.get(index)
Get a value from the cache. If the index is not found, null
is returned.
lru.set(index, value)
Insert a new value in the cache. If there is no room in the hash bucket that
index
maps to, the oldest value in the bucket will be evicted.
On my MacBook 12" I can set/get around 7.500.000 values per second, YMMV.
Run the benchmark using npm run bench
to test it for yourself.
MIT
FAQs
A really fast LRU cache for array items (numeric keys)
The npm package array-lru receives a total of 358 weekly downloads. As such, array-lru popularity was classified as not popular.
We found that array-lru demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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.
Security News
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.