cassandra-talks-scala

Simple integration library which enriches a Cassandra session so you can easily return Scala Futures and Akka Streams

License

License

Categories

Categories

Scala Languages Cassandra Data Databases
GroupId

GroupId

com.timcharper
ArtifactId

ArtifactId

cassandra-talks-scala_2.11
Last Version

Last Version

0.6
Release Date

Release Date

Type

Type

jar
Description

Description

cassandra-talks-scala
Simple integration library which enriches a Cassandra session so you can easily return Scala Futures and Akka Streams
Project URL

Project URL

https://github.com/timcharper/cassandra-talks-scala
Project Organization

Project Organization

com.timcharper
Source Code Management

Source Code Management

https://github.com/timcharper/cassandra-talks-scala

Download cassandra-talks-scala_2.11

How to add to project

<!-- https://jarcasting.com/artifacts/com.timcharper/cassandra-talks-scala_2.11/ -->
<dependency>
    <groupId>com.timcharper</groupId>
    <artifactId>cassandra-talks-scala_2.11</artifactId>
    <version>0.6</version>
</dependency>
// https://jarcasting.com/artifacts/com.timcharper/cassandra-talks-scala_2.11/
implementation 'com.timcharper:cassandra-talks-scala_2.11:0.6'
// https://jarcasting.com/artifacts/com.timcharper/cassandra-talks-scala_2.11/
implementation ("com.timcharper:cassandra-talks-scala_2.11:0.6")
'com.timcharper:cassandra-talks-scala_2.11:jar:0.6'
<dependency org="com.timcharper" name="cassandra-talks-scala_2.11" rev="0.6">
  <artifact name="cassandra-talks-scala_2.11" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.timcharper', module='cassandra-talks-scala_2.11', version='0.6')
)
libraryDependencies += "com.timcharper" % "cassandra-talks-scala_2.11" % "0.6"
[com.timcharper/cassandra-talks-scala_2.11 "0.6"]

Dependencies

compile (2)

Group / Artifact Type Version
com.datastax.cassandra : cassandra-driver-core jar 3.0.0
com.typesafe.akka : akka-stream_2.11 jar 2.4.2

Project Modules

There are no modules declared in this project.

Description

Simple integration library which enriches a Cassandra Java Driver Session so you can easily return Scala Futures and Akka Streams.

Install

libraryDependencies += "com.timcharper" %% "cassandra-talks-scala" % "0.6"

Depends on

libraryDependencies := Seq(
  "com.datastax.cassandra" % "cassandra-driver-core" % "2.1.9",
  "com.typesafe.akka" % "akka-stream_2.11" % "2.4.2"
)

Using

cassandra-talks-scala enriches com.datastax.driver.core.Session to contain Scala / Akka compatible methods; instead of executeAsync, run executeFuture or executeStream.

import com.timcharper.cassandra_talks_scala._
// ...
  // Get a Future[ResultSet]
  session.executeFuture("SELECT * FROM my_table")

  // Get a Akka Stream Source of Row.
  session.executeStream("SELECT * FROM my_table")

The executeStream method presently lacks a mechanism to determine the paging options. You can customize the ResultSet on your own by using ResultSetSource directly:

import com.timcharper.cassandra_talks_scala._

ResultSetSource { () =>
  session.executeFuture(statement).flatMap { resultSet =>
    // set paging options here...
    resultSet
  }
}

Streaming backpressure causes the driver to fetch pages from Cassandra more slowly.

Versions

0.6:

  • akka-stream: 2.4.x
  • cassandra-drive-core: 3.0.x

0.5:

  • akka-stream-experimental: 2.0.x
  • cassandra-drive-core: 3.0.x

0.4:

  • akka-stream-experimental: 2.0.x
  • cassandra-drive-core: 2.1.x

0.3:

  • akka-stream-experimental: 2.0-M1
  • cassandra-drive-core: 2.1.x

Versions

Version
0.6
0.5
0.4
0.3
0.2
0.1