ScyllaDB Java Driver for ScyllaDB and Apache Cassandra, based on the DataStax Java Driver
Clone or download
Pull request Compare This branch is 1 commit ahead of datastax:3.x.
haaawk Merge pull request #2 from datastax/3.x
Update branch 3.x to upstream
Latest commit 6a804b4 Jan 22, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
changelog JAVA-1964: Complete remaining "Coming Soon" sections in docs (datasta… Jan 7, 2019
ci JAVA-1266 & JAVA-1411: Stop using oss-parent and normalize versions a… Jun 9, 2017
driver-core Fix javadoc formatting Jan 4, 2019
driver-dist JAVA-1612: Include netty-common jar in binary tarball (2) Jan 4, 2019
driver-examples [maven-release-plugin] prepare for next development iteration Aug 29, 2018
driver-extras [maven-release-plugin] prepare for next development iteration Aug 29, 2018
driver-mapping JAVA-1159: Document workaround for using tuple with udt field in Mapp… Jan 7, 2019
driver-tests [maven-release-plugin] prepare for next development iteration Aug 29, 2018
faq Update versions in docs to 3.6.0 Aug 29, 2018
manual JAVA-1964: Complete remaining "Coming Soon" sections in docs (datasta… Jan 7, 2019
testing Merge pull request datastax#77 from joaquincasares/new_test_groups May 7, 2013
upgrade_guide Document behavior change for zero speculative execution delay Oct 1, 2018
.gitignore Add jEnv settings file to .gitignore. Aug 4, 2015
.travis.yml Update travis.yml to work with trusty distribution. Sep 8, 2017
CONTRIBUTING.md JAVA-1786: Use Google code formatter (datastax#1064) Aug 6, 2018
LICENSE Add license file Nov 19, 2012
README.md Update versions in docs to 3.6.0 Aug 29, 2018
build.yaml Use bionic for all jdks (datastax#1157) Dec 19, 2018
clirr-ignores.xml JAVA-1619: Update QueryBuilder methods to support Iterable input Sep 27, 2017
docs.yaml Update reference for 4.x docs Nov 1, 2017
doxyfile Added doxyfile_java to generate documentation Sep 29, 2015
pom.xml [maven-release-plugin] prepare for next development iteration Aug 29, 2018

README.md

Datastax Java Driver for Apache Cassandra®

Build Status

If you're reading this on github.com, please note that this is the readme for the development version and that some features described here might not yet have been released. You can find the documentation for the latest version through the Java driver docs or via the release tags, e.g. 3.6.0.

Feeback requested! Help us focus our efforts, provide your input on the Platform and Runtime Survey (we kept it short).

A modern, feature-rich and highly tunable Java client library for Apache Cassandra (2.1+) and using exclusively Cassandra's binary protocol and Cassandra Query Language v3. Use the DataStax Enterprise Java driver for better compatibility and support for DataStax Enterprise.

Features:

The driver architecture is based on layers. At the bottom lies the driver core. This core handles everything related to the connections to a Cassandra cluster (for example, connection pool, discovering new nodes, etc.) and exposes a simple, relatively low-level API on top of which higher level layers can be built.

The driver contains the following modules:

  • driver-core: the core layer.
  • driver-mapping: the object mapper.
  • driver-extras: optional features for the Java driver.
  • driver-examples: example applications using the other modules which are only meant for demonstration purposes.
  • driver-tests: tests for the java-driver.

Useful links:

Getting the driver

The last release of the driver is available on Maven Central. You can install it in your application using the following Maven dependency (if using DataStax Enterprise, install the DataStax Enterprise Java driver instead):

<dependency>
  <groupId>com.datastax.cassandra</groupId>
  <artifactId>cassandra-driver-core</artifactId>
  <version>3.6.0</version>
</dependency>

Note that the object mapper is published as a separate artifact:

<dependency>
  <groupId>com.datastax.cassandra</groupId>
  <artifactId>cassandra-driver-mapping</artifactId>
  <version>3.6.0</version>
</dependency>

The 'extras' module is also published as a separate artifact:

<dependency>
  <groupId>com.datastax.cassandra</groupId>
  <artifactId>cassandra-driver-extras</artifactId>
  <version>3.6.0</version>
</dependency>

We also provide a shaded JAR to avoid the explicit dependency to Netty.

If you can't use a dependency management tool, a binary tarball is available for download.

Compatibility

The Java client driver 3.6.0 (branch 3.x) is compatible with Apache Cassandra 2.1, 2.2 and 3.0+ (see this page for the most up-to-date compatibility information).

UDT and tuple support is available only when using Apache Cassandra 2.1 or higher (see CQL improvements in Cassandra 2.1).

Other features are available only when using Apache Cassandra 2.0 or higher (e.g. result set paging, BatchStatement, lightweight transactions -- see What's new in Cassandra 2.0). Trying to use these with a cluster running Cassandra 1.2 will result in an UnsupportedFeatureException being thrown.

The java driver supports Java JDK versions 6 and above.

If using DataStax Enterprise, the DataStax Enterprise Java driver provides more features and better compatibility.

Disclaimer: Some DataStax/DataStax Enterprise products might partially work on big-endian systems, but DataStax does not officially support these systems.

Upgrading from previous versions

If you are upgrading from a previous version of the driver, be sure to have a look at the upgrade guide.

If you are upgrading to DataStax Enterprise, use the DataStax Enterprise Java driver for more features and better compatibility.

License

Copyright 2012-2018, DataStax

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.