Achilles is an open source advanced object mapper for Apache Cassandra. Among all the features:
GROUP BY
since Cassandra 3.10 and DSE 5.1.xWarning: Achilles versions 5.x are no longer maintained, only bug-fixes are supported, please migrate to version 6.x and follow the [Migration From 5.x Guide]
Below is the compatibility matrix between Achilles, Java Driver and Cassandra versions
Achilles version | Java Driver version | Cassandra version |
---|---|---|
6.1.0 (all Cassandra versions up to 3.11.10, all DSE up to 5.1.10) | 3.11.0 | 3.11.10 |
5.2.1 (all Cassandra versions up to 3.7, all DSE up to 5.0.3) | 3.1.3 | 3.7 |
5.0.0 (all Cassandra versions up to 3.7, all DSE up to 5.0.3) | 3.1.0 | 3.7 |
4.2.3 (all Cassandra versions up to 3.7, all DSE up to 5.0.3) | 3.1.0 | 3.7 |
4.0.1 (limited to Cassandra 2.2.3 features) | 3.0.0-alpha5 | 2.2.3 |
3.2.3 (limited to Cassandra 2.1.x features) | 2.1.6 | 2.1.5 |
3.0.22 (limited to Cassandra 2.0.x features) | 2.1.6 | 2.0.15 |
Warning: there will be no new features for branches older than 5.0.x. Those branches are only supported for bug fixes. New features will not be back-ported. Please upgrade to the latest version of Achilles to benefit from new features
To use Achilles, just add the following dependency in your pom.xml:
<dependency>
<groupId>info.archinnov</groupId>
<artifactId>achilles-core</artifactId>
<version>${achilles.version}</version>
</dependency>
Do not forget to deactivate incremental compilation and use Java 8 in your pom.xml file
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<useIncrementalCompilation>false</useIncrementalCompilation>
<annotationProcessors>
<annotationProcessor>info.archinnov.achilles.internals.apt.processors.meta.AchillesProcessor</annotationProcessor>
</annotationProcessors>
</configuration>
</plugin>
</plugins>
</build>
Achilles 5.x requires a JDK 8 to work. It is recommended to use JDK 8 update 45 or later
For unit-testing with embedded Cassandra, add this dependency with test scope:
<dependency>
<groupId>info.archinnov</groupId>
<artifactId>achilles-junit</artifactId>
<version>${achilles.version}</version>
<scope>test</scope>
</dependency>
For now, Achilles depends on the following libraries:
Achilles is using code generation at compile time through annotation processors, you’ll need to configure your IDE carefully. Please follow the IDE Configuration guide
To boostrap quickly with Achilles, you can check the 5 minutes tutorial
To be productive quickly with Achilles. Most of useful examples are given in the Quick Reference
To get a deeper look on how you can use Achilles, check out the KillrChat application
All the documentation and tutorial is available in the Wiki
Versioned documentation is available at Documentation
For any question, bug encountered, you can use the mailing list
Copyright 2012-2016 DuyHai DOAN
Licensed under the Apache License, Version 2.0 (the “License”); you may not use this application 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.