|
| 1 | +# Datastax Java Driver for Apache Cassandra |
| 2 | + |
| 3 | +*If you're reading this on GitHub, please note that this is the readme |
| 4 | +for the development version and that some features described here might |
| 5 | +not yet have been released. You can find the documentation for latest |
| 6 | +version through [Java driver |
| 7 | +docs](http://datastax.github.io/java-driver/) or via the release tags, |
| 8 | +[e.g. |
| 9 | +2.1.5](https://github.com/datastax/java-driver/tree/2.1.5).* |
| 10 | + |
| 11 | +A Java client driver for Apache Cassandra. This driver works exclusively with |
| 12 | +the Cassandra Query Language version 3 (CQL3) and Cassandra's binary protocol. |
| 13 | + |
| 14 | +- JIRA: https://datastax-oss.atlassian.net/browse/JAVA |
| 15 | +- MAILING LIST: https://groups.google.com/a/lists.datastax.com/forum/#!forum/java-driver-user |
| 16 | +- IRC: #datastax-drivers on [irc.freenode.net](http://freenode.net) |
| 17 | +- TWITTER: Follow the latest news about DataStax Drivers - [@olim7t](http://twitter.com/olim7t), [@mfiguiere](http://twitter.com/mfiguiere) |
| 18 | +- DOCS: http://www.datastax.com/documentation/developer/java-driver/2.1/index.html |
| 19 | +- API: http://www.datastax.com/drivers/java/2.1 |
| 20 | +- CHANGELOG: https://github.com/datastax/java-driver/blob/2.1/driver-core/CHANGELOG.rst |
| 21 | + |
| 22 | +The driver architecture is based on layers. At the bottom lies the driver core. |
| 23 | +This core handles everything related to the connections to a Cassandra |
| 24 | +cluster (for example, connection pool, discovering new nodes, etc.) and exposes a simple, |
| 25 | +relatively low-level API on top of which higher level layer can be built. |
| 26 | + |
| 27 | +The driver contains the following modules: |
| 28 | + |
| 29 | +- driver-core: the core layer. |
| 30 | +- driver-mapping: the object mapper. |
| 31 | +- driver-examples: example applications using the other modules which are |
| 32 | + only meant for demonstration purposes. |
| 33 | + |
| 34 | +Please refer to the README of each module for more information. |
| 35 | + |
| 36 | +## Maven |
| 37 | + |
| 38 | +The last release of the driver is available on Maven Central. You can install |
| 39 | +it in your application using the following Maven dependency: |
| 40 | + |
| 41 | + <dependency> |
| 42 | + <groupId>com.datastax.cassandra</groupId> |
| 43 | + <artifactId>cassandra-driver-core</artifactId> |
| 44 | + <version>2.1.5</version> |
| 45 | + </dependency> |
| 46 | + |
| 47 | +Note that the object mapper is published as a separate artifact: |
| 48 | + |
| 49 | + <dependency> |
| 50 | + <groupId>com.datastax.cassandra</groupId> |
| 51 | + <artifactId>cassandra-driver-mapping</artifactId> |
| 52 | + <version>2.1.5</version> |
| 53 | + </dependency> |
| 54 | + |
| 55 | +We also provide a [shaded JAR](http://datastax.github.io/java-driver/features/shaded_jar/) |
| 56 | +to avoid the explicit dependency to Netty. |
| 57 | + |
| 58 | +## Compatibility |
| 59 | + |
| 60 | +The Java client driver 2.1 ([branch 2.1](https://github.com/datastax/java-driver/tree/2.1)) is compatible with Apache |
| 61 | +Cassandra 1.2, 2.0 and 2.1. |
| 62 | + |
| 63 | +UDT and tuple support is available only when using Apache Cassandra 2.1 (see [CQL improvements in Cassandra 2.1](http://www.datastax.com/dev/blog/cql-in-2-1)). |
| 64 | + |
| 65 | +Other features are available only when using Apache Cassandra 2.0 or higher (e.g. result set paging, |
| 66 | +[BatchStatement](https://github.com/datastax/java-driver/blob/2.1/driver-core/src/main/java/com/datastax/driver/core/BatchStatement.java), |
| 67 | +[lightweight transactions](http://www.datastax.com/documentation/cql/3.1/cql/cql_using/use_ltweight_transaction_t.html) |
| 68 | +-- see [What's new in Cassandra 2.0](http://www.datastax.com/documentation/cassandra/2.0/cassandra/features/features_key_c.html)). |
| 69 | +Trying to use these with a cluster running Cassandra 1.2 will result in |
| 70 | +an [UnsupportedFeatureException](https://github.com/datastax/java-driver/blob/2.1/driver-core/src/main/java/com/datastax/driver/core/exceptions/UnsupportedFeatureException.java) being thrown. |
| 71 | + |
| 72 | + |
| 73 | +## Upgrading from previous versions |
| 74 | + |
| 75 | +If you are upgrading from the 2.0.x branch of the driver, be sure to have a look at |
| 76 | +the [upgrade guide](https://github.com/datastax/java-driver/blob/2.1/driver-core/Upgrade_guide_to_2.1.rst). |
| 77 | + |
| 78 | +If you are upgrading from the 1.x branch, follow the [upgrade guide to 2.0](https://github.com/datastax/java-driver/blob/2.0/driver-core/Upgrade_guide_to_2.0.rst), |
| 79 | +and then the above document. |
| 80 | + |
| 81 | + |
| 82 | +### Troubleshooting |
| 83 | + |
| 84 | +If you are having issues connecting to the cluster (seeing `NoHostAvailableConnection` exceptions) please check the |
| 85 | +[connection requirements](https://github.com/datastax/java-driver/wiki/Connection-requirements). |
| 86 | + |
| 87 | + |
| 88 | + |
| 89 | + |
| 90 | +## License |
| 91 | +Copyright 2012-2014, DataStax |
| 92 | + |
| 93 | +Licensed under the Apache License, Version 2.0 (the "License"); |
| 94 | +you may not use this file except in compliance with the License. |
| 95 | +You may obtain a copy of the License at |
| 96 | + |
| 97 | +http://www.apache.org/licenses/LICENSE-2.0 |
| 98 | + |
| 99 | +Unless required by applicable law or agreed to in writing, software |
| 100 | +distributed under the License is distributed on an "AS IS" BASIS, |
| 101 | +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 102 | +See the License for the specific language governing permissions and |
| 103 | +limitations under the License. |
0 commit comments