# casser Fast and easy, functional style cutting edge Java 8 and Scala 2.11 Cassandra client Current status: First application in production (may be more) ### Features * Leverages Java 8 language capabilities to build CQL queries * Simple function-style stream API * Reactive asynchronous and synchronous API * Provides Java mapping for Tables, Tuples, UDTs (User Defined Type), Collections, UDT Collections, Tuple Collections * Provides Lazy mapping in all cases where possible ### Requirements * Latest JVM 8 * Latest Datastax Driver 2.1.5 * Latest Cassandra 2.1.4 * Latest Scala 2.11 * Latest Maven as well ### Maven Latest release dependency: ``` com.noorq.casser casser-core 1.0.0 ``` Active development dependency: ``` com.noorq.casser casser-core 1.1.0-SNAPSHOT oss-sonatype oss-sonatype https://oss.sonatype.org/content/repositories/snapshots/ true ``` ### Example Entity definition: ``` @Table("timelines") public interface Timeline { @PartitionKey UUID userId(); @ClusteringColumn @Types.Timeuuid Date timestamp(); @Column String text(); } ``` Session initialization: ``` Timeline timeline = Casser.dsl(Timeline.class); CasserSession session = Casser.init(getSession()).showCql().add(Timeline.class).autoCreateDrop().get(); ``` Select information: ``` session.select(timeline::userId, timeline::timestamp, timeline::text) .where(timeline::userId, Query.eq(userId)) .orderBy(Query.desc(timeline::timestamp)).limit(5).sync() .forEach(System.out::println); ``` Insert information: ``` TimelineImpl post = new TimelineImpl(); post.userId=userId; post.timestamp=new Date(postTime+1000L*i); post.text="hello"; session.upsert(post).sync(); ```