Phantom
Schema safe, type-safe, reactive Scala driver for Cassandra/Datastax Enterprise
Install / Use
/learn @outworkers/PhantomREADME
phantom
| CI | Test coverage(%) | Code quality | Stable version | ScalaDoc | Chat | Open issues | Average issue resolution time |
| --- | ---------------- | -------------| -------------- | -------- | ---- | ----------- | ----------------------------- |
| |
|
|
|
|
|
|
|
Reactive type-safe Scala driver for Apache Cassandra/Datastax Enterprise
To stay up-to-date with our latest releases and news, follow us on Twitter: @outworkers.
If you use phantom, please consider adding your company to our list of adopters. Phantom is and will always be open source, but the more adopters our projects have, the more people from our company will actively work to make them better.

Migrating to phantom 2.14.0 and using execution backends.
Please refer to the new docs on query execution to understand the breaking changes in phantom 2.14.0. They will affect all users of phantom, as we further optimise the internals for better performance and to gently prepare 3.0.
Details here. In short, query generation is no longer coupled with query execution within the framework. That means phantom can natively support different kind of concurrency frameworks in parallel, using different sub-modules. That includes Monix, Twitter Util, Scala Futures, and a few others, some of which only available via phantom-pro.
import com.outworkers.phantom.dsl._ is now required in more places than before. The future method is no longer implementation by query classes, but
rather added via implicit augmentation by QueryContext. The return type of the future method is now dependent
on which QueryContext you use, so that's why importing is required, without it the necessary implicits will not
be in scope by default, or similarly, in some places new implicits are required to specify things specific to an execution backend.
Scala 2.13 support
As of phantom 2.50.0, Scala 2.13 support is officially available, however all support has been dropped for Scala 2.10. To use Scala 2.10 with phantom, please use a version of phantom earlier than 2.5.0. No support or ongoing maintenance will be offered for 2.10 artifacts, as the codebase has undergone significant change to support newer versions, and the various libraries we depend on no longer support this.
Migrating to phantom 2.x.x series
The new series of phantom introduces several key backwards incompatible changes with previous versions. This was done to obtain massive performance boosts and to thoroughly improve user experience with phantom.
Read the MIGRATION GUIDE for more information on how to upgrade.
Available modules
This is a table of the available modules for the various Scala versions. Not all modules are available for all versions just yet, and this is because certain dependencies have yet to be published for Scala 2.12.
Phantom OSS
| Module name | Scala 2.11.x | Scala 2.12.x | Scala 2.13.x | | ------------ | ------------------| ----------------- | ------------------- | | phantom-connectors | <span>yes</span> | <span>yes</span> | <span>yes</span> | | phantom-dsl | <span>yes</span> | <span>yes</span> | <span>yes</span> | | phantom-jdk8 | <span>yes</span> | <span>yes</span> | <span>yes</span> | | phantom-sbt | <span>no</span> | <span>yes</span> | <span>no</span> | | phantom-example | <span>yes</span> | <span>yes</span> | <span>yes</span> | | phantom-thrift | <span>yes</span> | <span>yes</span> | <span>yes</span> | | phantom-finagle | <span>yes</span> | <span>yes</span> | <span>yes</span> | | phantom-streams | <span>yes</span> | <span>yes</span> | <span>no</span> |
Phantom Pro subscription edition
Modules marked with "x" are still in beta or pre-publishing mode.
| Module name | Scala 2.11.x | Scala 2.12.x | Scala 2.13.x | Release date | | ------------ | ------------------| ----------------- | ------------------- | -------------- | | phantom-dse | <span>yes</span> | <span>yes</span> | <span>yes</span> | Released | | phantom-udt | <span>yes</span> | <span>yes</span> | <span>yes</span> | Released | | phantom-autotables | <span>yes</span> | <span>yes</span> | <span>yes</span> | Released | | phantom-monix | <span>yes</span> | <span>yes</span> | <span>yes</span> | Released | | phantom-docker | <span>x</span> | <span>x</span> | <span>x</span> | Released | | phantom-migrations | <span>yes</span> | <span>yes</span> | <span>yes</span> | Released | | phantom-graph | <span>x</span> | <span>x</span> | <span>x</span> | April 2020 | | phantom-spark | <span>x</span> | <span>x</span> | <span>x</span> | July 2020 | | phantom-solr | <span>x</span> | <span>x</span> | <span>x</span> | July 2020 | | phantom-native | <span>x</span> | <span>x</span> | <span>x</span> | December 2020 | | phantom-java-dsl | <span>x</span> | <span>x</span> | <span>x</span> | December 2020 |
Using phantom
Scala 2.11, 2.12 and 2.13 releases
We publish phantom in 2 formats, stable releases and bleeding edge.
-
The stable release is always available on Maven Central and will be indicated by the badge at the top of this readme. The Maven Central badge is pointing at the latest version
-
Intermediary releases are available through our Bintray repo available at
Resolver.bintrayRepo("outworkers", "oss-releases")orhttps://dl.bintray.com/outworkers/oss-releases/. The latest version available on our Bintray repository is indicated by the Bintray badge at the top of this readme.
How phantom compares
To compare phantom to similar tools in the Scala/Cassandra category, you can read more here.
Latest versions
The latest versions are available here. The badges automatically update when a new version is released.
<a id="learning-phantom">Tutorials on phantom and Cassandra</a>
For ease of use and far better management of documentation, we have decided to export the README.md to a compiled
documentation page, now available here.
The following are the current resources available for learning phantom, outside of tests which are very useful in highlighting all the possible features in phantom and how to use them.
This is a list of resources to help you learn phantom and Cassandra:
- [ ] Quickstart
- [ ] Official documentation
- [ ] Datastax Introduction to Cassandra.
- [ ] The official Scala API docs for phantom
- [ ] The main Wiki
- [ ] The StackOverflow phantom-dsl tag, which we always monitor!
- [ ] Anything tagged phantom on our blog is a phantom tutorial: phantom tutorials
- [ ] A series on Cassandra: Getting rid of the SQL mentality
- [ ] A series on Cassandra: Indexes and keys
- [ ] A series on Cassandra: Advanced features
- [ ] [A series on phantom: Gettin
Related Skills
node-connect
337.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
337.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.2kCommit, push, and open a PR
