
Threat Research
/Security News
Searchjacked: Hidden Browser Extensions Hijack Searches for 13 Million Users
319 browser extensions installed by 13.4 million users hijack searches, capture queries, and collect referral payments from Yahoo and Bing.
level-party
Advanced tools
open a leveldb handle multiple times, transparently upgrading to use multilevel when more than 1 process try to use the same leveldb data directory at once and re-electing a new master when the primary unix socket goes down
Normally with level, when you try to open a database handle from more than one process you will get a locking error:
events.js:72
throw er; // Unhandled 'error' event
^
OpenError: IO error: lock /home/substack/projects/level-party/example/data/LOCK: Resource temporarily unavailable
at /home/substack/projects/level-party/node_modules/level/node_modules/level-packager/node_modules/levelup/lib/levelup.js:114:34
With level-party, the database open will automatically drop down to using multilevel over a unix socket using metadata placed into the level data directory transparently.
This means that if you have 2 programs, 1 that gets:
var level = require('level-party');
var db = level(__dirname + '/data', { valueEncoding: 'json' });
setInterval(function () {
db.get('a', function (err, value) {
console.log('a=', value);
});
}, 250);
and 1 that puts:
var level = require('level-party');
var db = level(__dirname + '/data', { valueEncoding: 'json' });
var n = Math.floor(Math.random() * 100000);
setInterval(function () {
db.put('a', n + 1);
}, 1000);
and you start them up in any order, everything will just work! No more
IO error: lock exceptions.
$ node put.js & sleep 0.2; node put.js & sleep 0.2; node put.js & sleep 0.2; node put.js & sleep 0.2
[1] 3498
[2] 3502
[3] 3509
[4] 3513
$ node get.js
a= 35340
a= 31575
a= 37639
a= 58874
a= 35341
a= 31576
$ node get.js
a= 35344
a= 31579
a= 37643
a= 58878
a= 35345
^C
Hooray!
level-party does seamless failover. This means that if you create a read-stream and the leader goes down while you are reading that stream level-party will resume your stream on the new leader.
This disables leveldb snapshotting so if your app relies on this you should disable this by setting opts.retry = false
var db = level('./data', {retry: false}) // will not retry streams / gets / puts if the leader goes down
level-party works on windows as well using named pipes.
var level = require('level-party')
The arguments are exactly the same as level. You will sometimes get a real leveldb handle and sometimes get a multilevel handle back in the response.
With npm do:
npm install level-party
MIT
FAQs
Open a leveldb handle multiple times
The npm package level-party receives a total of 2,296 weekly downloads. As such, level-party popularity was classified as popular.
We found that level-party demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.

Threat Research
/Security News
319 browser extensions installed by 13.4 million users hijack searches, capture queries, and collect referral payments from Yahoo and Bing.

Threat Research
Malicious Firefox extensions mimic Phantom, Jupiter, and Bitget wallets to steal recovery phrases and private keys, with one fetching its payload remotely.

Product
Socket Threat Intel now shows which malware campaigns were blocked or detected in your organization, with links to scans and Firewall events.