Security News
Supply Chain Attack Detected in @solana/web3.js Library
A supply chain attack has been detected in versions 1.95.6 and 1.95.7 of the popular @solana/web3.js library.
A memcache client for node using the binary protocol and SASL authentication
memjs is a client library for interacting with Memcached servers in Node.js. It provides a simple and efficient way to store, retrieve, and manage cached data using the Memcached protocol.
Connecting to a Memcached server
This feature allows you to establish a connection to a Memcached server using the memjs client.
const memjs = require('memjs');
const client = memjs.Client.create();
Storing data in the cache
This feature allows you to store data in the Memcached server with an optional expiration time.
client.set('key', 'value', {expires: 10}, function(err, val) {
if (err) throw err;
console.log('Value set successfully');
});
Retrieving data from the cache
This feature allows you to retrieve data from the Memcached server using a key.
client.get('key', function(err, val) {
if (err) throw err;
console.log('Retrieved value:', val.toString());
});
Deleting data from the cache
This feature allows you to delete data from the Memcached server using a key.
client.delete('key', function(err, val) {
if (err) throw err;
console.log('Key deleted successfully');
});
The 'memcached' package is another popular client for interacting with Memcached servers in Node.js. It offers a rich set of features and supports multiple servers, consistent hashing, and more. Compared to memjs, 'memcached' provides more advanced configuration options and is widely used in production environments.
The 'node-memcached' package is a high-performance Memcached client for Node.js. It supports clustering, consistent hashing, and various other features. It is known for its speed and efficiency, making it a good alternative to memjs for high-throughput applications.
MemJS is a pure Node.js client library for using memcache, in particular, the MemCachier service. It uses the binary protocol and support SASL authentication.
Documentation can be found here: https://memjs.netlify.com/
MemJS is tested to work with version 0.10 or higher of Node.js.
MemJS is available from the npm registry:
$ npm install memjs
To install from git:
$ git clone git://github.com/alevy/memjs.git
$ cd memjs
$ npm link
MemJS was designed for the MemCachier memcache service but will work with any memcache server that speaks the binary protocol. Many software repositories have a version of memcached available for installation:
$ apt-get install memcached
$ brew install memcached
MemJS understands the following environment variables:
MEMCACHIER_SERVERS
- used to determine which servers to connect to. Should be a comma separated list of [hostname:port].MEMCACHIER_USERNAME
- if present with MEMCACHIER_PASSWORD
, MemJS will try to authenticated to the server using SASL.MEMCACHIER_PASSWORD
- if present with MEMCACHIER_USERNAME
, MemJS will try to authenticated to the server using SASL.MEMCACHE_USERNAME
- used if MEMCACHIER_USERNAME
is not presentMEMCACHE_PASSWORD
- used if MEMCACHIER_PASSWORD
is not presentEnvironment variables are only used as a fallback for explicit parameters.
You can start using MemJS immediately from the node console:
$ var memjs = require('memjs')
$ var client = memjs.Client.create()
$ client.get('hello', function(err, val) { console.log(val); })
If callbacks are not specified, the command calls return promises.
client.set('hello', 'world', {expires:600}, function(err, val) {
});
The set(key, val, options, callback)
function accepts the following parameters.
key
: key to setval
: value to setoptions
: an object of options. Currently supports only the key expires
, which is a time interval, in seconds, after which memcached will expire the objectcallback
: a callback invoked after the value is set
err
: errorval
: value retrievedclient.get('hello', function(err, val) {
});
The get(key, callback)
function accepts the following parameters.
Note that values are always returned as Buffer
s, regardless of whether a
Buffer
or String
was passed to set
.
key
: key to retrievecallback
: a callback invoked after the value is retrieved
err
: errorval
: value retrieved as a Buffer
The best way to contribute to the project is by reporting bugs and testing unpublished
versions. If you have a staging or development app, the easiest way to do this is
using the git repository as your memjs
package dependency---in package.json
:
{
"name": "MyAppName",
...
"dependencies": {
...
"memjs": "git://github.com/alevy/memjs.git#master"
...
}
}
If you find a bug, please report as an issue. If you fix it, please don't hesitate to send a pull request on GitHub or via e-mail.
Feature suggestions are also welcome! These includes suggestions about syntax and interface design.
Finally, a great way to contribute is to implement a feature that's missing and send a pull request. The list below contains some planned features that have not been addressed yet. You can also implement a feature not a list if you think it would be good.
Copyright (c) 2012 Amit Levy, MemCachier. See LICENSE for details.
FAQs
A memcache client for node using the binary protocol and SASL authentication
We found that memjs demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 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.
Security News
A supply chain attack has been detected in versions 1.95.6 and 1.95.7 of the popular @solana/web3.js library.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.