Phantom alternatives and similar packages
Based on the "Database" category.
Alternatively, view Phantom alternatives based on common mentions on social networks and blogs.
Slick9.4 9.3 Phantom VS SlickSlick (Scala Language Integrated Connection Kit) is a modern database query and access library for Scala
Quill9.2 9.0 Phantom VS QuillCompile-time Language Integrated Queries for Scala
Elastic4s9.2 9.2 Phantom VS Elastic4sElasticsearch Scala Client - Reactive, Non Blocking, Type Safe, HTTP Client
doobie9.1 9.1 Phantom VS doobieFunctional JDBC layer for Scala.
PostgreSQL and MySQL asyncAsync database drivers to talk to PostgreSQL and MySQL in Scala.
ScalikeJDBC8.5 7.2 Phantom VS ScalikeJDBCA tidy SQL-based DB access library for Scala developers. This library naturally wraps JDBC APIs and provides you easy-to-use APIs.
scala-redis8.4 0.0 Phantom VS scala-redisA scala library for connecting to a redis server, or a cluster of redis nodes using consistent hashing on the client side.
ReactiveMongo8.2 5.0 Phantom VS ReactiveMongo:leaves: Non-blocking, Reactive MongoDB Driver for Scala
Slick-pg7.9 8.9 Phantom VS Slick-pgSlick extensions for PostgreSQL
rediscala7.7 0.0 Phantom VS rediscalaNon-blocking, Reactive Redis driver for Scala (with Sentinel support)
Casbah7.3 2.6 Phantom VS CasbahCasbah is now officially end-of-life (EOL).
Squeryl7.2 5.0 Phantom VS SquerylA Scala DSL for talking with databases with minimum verbosity and maximum type safety
Salat7.1 0.0 Phantom VS SalatSalat is a simple serialization library for case classes.
gremlin-scala6.7 4.6 Phantom VS gremlin-scalaScala wrapper for Apache TinkerPop 3 Graph DSL
mongo-scala-driver6.6 1.7 Phantom VS mongo-scala-driverA modern idiomatic MongoDB Scala Driver.
Scanamo6.4 8.1 Phantom VS ScanamoSimpler DynamoDB access for Scala
Scala ActiveRecord5.8 0.0 Phantom VS Scala ActiveRecordActiveRecord-like ORM library for Scala
Activate5.7 0.0 Phantom VS ActivateAbandoned: Pluggable persistence in Scala
Anorm5.5 8.8 Phantom VS AnormThe Anorm database library
Sorm5.2 0.0 Phantom VS SormA functional boilerplate-free Scala ORM
SwayDB5.1 4.2 Phantom VS SwayDBPersistent and in-memory key-value storage engine for JVM that scales on a single machine.
Pulsar4s5.0 7.8 Phantom VS Pulsar4sIdiomatic, typesafe, and reactive Scala client for Apache Pulsar
#<Sawyer::Resource:0x00007f161059a678>Strong type constraints for Scala
Relate4.9 0.0 Phantom VS RelatePerformant database access in Scala
scredis4.7 0.0 Phantom VS scredisNon-blocking, ultra-fast Scala Redis client built on top of Akka IO, used in production at Livestream
Scala-Forklift4.6 0.0 Phantom VS Scala-ForkliftType-safe data migration tool for Slick, Git and beyond.
AnormCypher4.4 0.0 Phantom VS AnormCypherNeo4j Scala library based on Anorm in the Play Framework
neotypes4.2 9.0 Phantom VS neotypesScala lightweight, type-safe, asynchronous driver for neo4j
Troy4.0 0.0 Phantom VS TroyType-safe and Schema-safe Scala wrapper for Cassandra driver
Scruid4.0 0.0 Phantom VS ScruidScala + Druid: Scruid. A library that allows you to compose queries in Scala, and parse the result back into typesafe classes.
rethink-scala3.7 0.0 Phantom VS rethink-scalaScala Driver for RethinkDB
Shade3.7 0.0 Phantom VS ShadeMemcached client for Scala
Clickhouse-scala-clientClickhouse Scala Client with Reactive Streams support
scala-sql3.3 7.3 Phantom VS scala-sqlscala SQL api
longevity3.2 0.0 Phantom VS longevityA Persistence Framework for Scala and NoSQL
Tepkin3.1 0.0 Phantom VS TepkinReactive MongoDB Driver for Scala built on top of Akka IO and Akka Streams.
Couchbase3.0 9.1 Phantom VS CouchbaseThe Couchbase Monorepo for JVM Clients: Java, Scala, io-core…
laserdisc3.0 9.1 Phantom VS laserdiscA Future-free Fs2 native pure FP Redis client
Morpheus2.9 0.0 Phantom VS MorpheusReactive type-safe Scala driver for SQL databases
ScalaRelational2.8 0.0 Phantom VS ScalaRelationalType-Safe framework for defining, modifying, and querying SQL databases
CouchDB-Scala2.8 0.0 Phantom VS CouchDB-ScalaA purely functional Scala client for CouchDB
ReactiveCouchbase2.8 0.0 Phantom VS ReactiveCouchbasePlay 2 plugin for ReactiveCouchbase
ReactiveNeo2.7 0.0 Phantom VS ReactiveNeo[DISCONTINUED] Reactive type-safe Scala driver for Neo4J
lucene4s2.7 0.0 Phantom VS lucene4sLight-weight convenience wrapper around Lucene to simplify complex tasks and add Scala sugar.
Memcontinuationed2.4 0.0 Phantom VS MemcontinuationedMemcached client for Scala
d4s2.2 8.7 Phantom VS d4sDynamo DB Database Done Scala-way
scala-migrations2.0 0.0 Phantom VS scala-migrationsDatabase migrations written in Scala
etcd4s1.8 0.0 Phantom VS etcd4sScala etcd client implementing V3 APIs
neo4akka1.7 0.0 Phantom VS neo4akkaNeo4j Scala client using Akka-Http
GCP Datastore Akka Persistence Pluginakka-persistence-gcp-datastore is a journal and snapshot store plugin for akka-persistence using google cloud firestore in datastore mode.
Static code analysis for 29 languages.
Do you think we are missing an alternative of Phantom or a related project?
|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](docs_bkp/querying/execution.md). 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
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](docs_bkp/migrate.md) for more information on how to upgrade.
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.
|Module name||Scala 2.11.x||Scala 2.12.x||Scala 2.13.x|
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|
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
https://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](docs_bkp/comparison.md).
The latest versions are available here. The badges automatically update when a new version is released.
Tutorials on phantom and Cassandra
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](docs_bkp/quickstart.md)
- [ ] [Official documentation](docs_bkp/README.md)
- [ ] 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: Getting started with phantom
- [ ] The Play! Phantom Activator template
- [ ] Thiago's Cassandra + Phantom demo repository
Issues and questions
back to top
We love Cassandra to bits and use it in every bit of our stack. phantom makes it super trivial for Scala users to embrace Cassandra.
Cassandra is highly scalable and it is by far the most powerful database technology available, open source or otherwise.
Phantom is built on top of the Datastax Java Driver, which handles Cassandra connectivity and raw query execution.
We are very happy to help implement missing features in phantom, answer questions about phantom, and occasionally help you out with Cassandra questions! Please use GitHub for any issues or bug reports.
Here are a few of the biggest phantom adopters, though the full list is far more comprehensive.
License and copyright
Phantom is distributed under the Apache V2 License.
Outworkers, Limitedis the copyright holder.
You can use phantom in commercial products or otherwise.
We strongly appreciate and encourage contributions.
All paid for features are published and sold separately as
phantom-pro, everything that is currently available for free will remain so forever.
If you would like our help with any new content or initiatives, we'd love to hear about it!
back to top
Phantom was developed at outworkers as an in-house project. All Cassandra integration at outworkers goes through phantom, and nowadays it's safe to say most Scala/Cassandra users in the world rely on phantom.
- Flavian Alexandru (@alexflav23) - maintainer
- Bartosz Jankiewicz (@bjankie1)
- Benjamin Edwards (@benjumanji)
- Kevin Wright (@kevinwright)
- Eugene Zhulenev (@ezhulenev)
- Michal Matloka (@mmatloka)
- Thiago Pereira (@thiagoandrade6)
- Juan José Vázquez (@juanjovazquez)
- Viktor Taranenko (@viktortnk)
- Stephen Samuel (@sksamuel)
- Evan Chan (@evanfchan)
- Jens Halm (@jenshalm)
- Donovan Levinson (@levinson)
back to top
Special thanks to Viktor Taranenko from WhiskLabs, who gave us the original idea, and special thanks to Miles Sabin and team behind Shapeless, where we shamelessly stole all the good patterns from.
Copyright © 2013 - 2017 outworkers.
Contributing to phantom
back to top
Contributions are most welcome! Use GitHub for issues and pull requests and we will happily help out in any way we can!
*Note that all licence references and agreements mentioned in the Phantom README section above are relevant to that project's source code only.