Over the past few months we've been working on a Javascript client based on Node.js which can talk to Infinispan Server instances and today we can announce the first public release, version 0.1.0 which can easily be installed with the following command:
$ npm install infinispan
The client is still under heavy development but here's a summary of its current capabilities:
- Full CRUD operation support, e.g. put, get, remove, containsKey...etc.
- Compare-And-Swap operation support, e.g. putIfAbsent, getWithVersion/getWithMetadata, replace, replaceWithVersion, removeWithVersion...etc.
- Expiration with absolute lifespan or relative maximum idle time is supported. This expiration parameters as passed as optional parameters to create/update methods and they support multiple time units, e.g. {lifespan: '1m', maxIdle: '1d'}.
- Update and remove operations can optionally return previous values by passing in{previous: true} option.
- Bulk store/retrieve/delete operations are supported, e.g. putAll, getAll, getBulk, getBulkKeys, clear...etc.
- Cache contents can be iterated over using the iterator method.
- Cache size can be determined using the size method.
- Remote cache listeners can be plugged using the addListener method, which takes the event type (create, modify, remove or expiry) and the function callback as parameter.
Sample code showing how to use the Infinispan Javascript client can be found in the client's README file.
In future versions we'll be adding remote execution support as well as cluster topology handling, including consistent-hash based request routing.
If you're a Javascript user and want to store data remotely in Infinispan Server instances, please give the client a go and tell us what you think of it via our forum, via our issue tracker or via IRC on the #infinispan channel on Freenode.
Cheers,
Galder