Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Cassandra CQL Driver for Node.js Now Available

DZone's Guide to

Cassandra CQL Driver for Node.js Now Available

· Database Zone
Free Resource

Learn how to create flexible schemas in a relational database using SQL for JSON.

This week Rackspace released a CQL (Cassandra Query Language) client for Apache Cassandra written in Node.js.

Rackspace, known for their open source cloud technology - OpenStack, has been a long-time contributor to the Cassandra project and have participated in crucial stages of the development. As you may know, a Rackspace engineer created the Cassandra Query Language (CQL) with the release of Cassandra 0.8.  CQL was conceived to create an easier driver to work with because it was assumed that it would be more difficult to use the existing Cassandra Thrift client though it should be noted that CQL was still under active development.

When Rackspace started developing Cloud Monitoring, we decided to use Node.js for our API service endpoints. These services would need to communicate with a Cassandra storage cluster. We made the decision to use CQL even though it was still under active development and no Node.js driver existed for it at the time. We figured it would be easier to implement the driver than to use the existing Cassandra Thrift client. Also, we knew that we would be able to contribute the driver back to the project so that other Node.js users would benefit.

-- Gary Dusbabek


Rackspace was also a key contributor to the Java, Python and Node.js CQL drivers.

For awesome examples of how-to connect, update, and select results from your Cassandra database using node-cassandra-client, go to the Rackspace blog post.  To download this driver, go to the GitHub page.  It currently supports CQL 2.0, but 3.0 support is coming.

Create flexible schemas using dynamic columns for semi-structured data. Learn how.

Topics:

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}