
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
LockDB is a cross-platform tool you can use to handle process/event locking and avoid race conditions. It is sometimes also known as a semaphore.
LockDB is a cross-platform tool you can use to handle process/event locking and avoid race conditions. It is sometimes also known as a semaphore.
There are packages for Node.js/Browser/Bun/NPM, Deno, and you can also use it as a CLI.
It has no dependencies, and is very simple to use, with effectively 3 commands/actions/methods: lock('name')
, unlock('name')
, and check('name')
. It also supports locking/unlocking/checking multiple locks at once.
You can get your apiKey
at lockdb.com or connect LockDB
to your own server/API.
You don't need to install anything with Deno, but here's how you do it with all others:
npm install --save-exact lockdb
yarn add --exact lockdb
pnpm add --save-exact lockdb
// import LockDB from 'lockdb';
// import LockDB from 'https://deno.land/x/lockdb@0.2.2/mod.ts';
const LockDB = require('lockdb');
const lockName = 'sales';
const locker = new LockDB('reports', { apiKey: 'api-key' });
// Check on a lock (optional)
const isReportLocked = await locker.check(lockName);
console.log(isReportLocked); // Outputs `false`
// Obtain a lock, waiting up to 30 seconds for it
try {
await locker.lock(lockName);
// Generate important/intensive report here
// Unlock a lock, returning if it was locked before
const wasReportLockedBeforeUnlock = await locker.unlock(lockName);
console.log(wasReportLockedBeforeUnlock); // Outputs `true`
} catch (error) {
console.error(`Failed to obtain lock (${lockName}): ${error}`);
}
You can find binaries for your system in the latest release.
Here's an example for Linux intel (x86_64), on downloading it with curl
and moving it to /usr/local/bin/
so it's available globally as lockdb
:
# Download the binary from the latest release for your system and move it to `/usr/local/bin/`. Here's an example for most Linux OSes:
curl -L https://github.com/BrunoBernardino/lockdb/releases/latest/download/lockdb-linux-intel --output lockdb && chmod +x lockdb && sudo mv lockdb /usr/local/bin/
Then to use it, on any OS:
# Set ENV variables
export LOCKDB_SERVICE_ID="reports"
export LOCKDB_API_KEY="api-key"
# Check on a lock
lockdb check sales
# Outputs `false`
# Obtain a lock, waiting up to 30 seconds for it
lockdb lock sales
# Outputs `true`
# Unlock a lock, returning if it was locked before
lockdb unlock sales
# Outputs `true`
# Check on multiple locks
lockdb check sales,report,cleanup
# Outputs `false`
Requires deno@1.41.0
(other versions will probably work).
make format
make test
# CLI
deno run --allow-net mock_server.ts
deno run --allow-net --allow-env=LOCKDB_SERVICE_ID,LOCKDB_API_KEY,LOCKDB_SERVER_URL main.ts check sales --server-url="http://127.0.0.1:5678" --service-id="reports" --api-key="api-key"
VERSION
in main.ts
.make publish VERSION=x.y.z
. That will publish to npm
and push a new tag, which will build binaries, and a new pre-release with them.FAQs
LockDB is a cross-platform tool you can use to handle process/event locking and avoid race conditions. It is sometimes also known as a semaphore.
We found that lockdb 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
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.