Scala ActiveRecord alternatives and similar packages
Based on the "Database" category.
Alternatively, view Scala ActiveRecord alternatives based on common mentions on social networks and blogs.
-
Slick
Slick (Scala Language Integrated Connection Kit) is a modern database query and access library for Scala -
Elastic4s
Elasticsearch Scala Client - Reactive, Non Blocking, Type Safe, HTTP Client -
PostgreSQL and MySQL async
Async database drivers to talk to PostgreSQL and MySQL in Scala. -
ScalikeJDBC
A tidy SQL-based DB access library for Scala developers. This library naturally wraps JDBC APIs and provides you easy-to-use APIs. -
scala-redis
A scala library for connecting to a redis server, or a cluster of redis nodes using consistent hashing on the client side. -
Phantom
Schema safe, type-safe, reactive Scala driver for Cassandra/Datastax Enterprise -
ReactiveMongo
:leaves: Non-blocking, Reactive MongoDB Driver for Scala -
rediscala
Non-blocking, Reactive Redis driver for Scala (with Sentinel support) -
Squeryl
A Scala DSL for talking with databases with minimum verbosity and maximum type safety -
gremlin-scala
Scala wrapper for Apache TinkerPop 3 Graph DSL -
mongo-scala-driver
A modern idiomatic MongoDB Scala Driver. -
SwayDB
Persistent and in-memory key-value storage engine for JVM that scales on a single machine. -
Pulsar4s
Idiomatic, typesafe, and reactive Scala client for Apache Pulsar -
scredis
Non-blocking, ultra-fast Scala Redis client built on top of Akka IO, used in production at Livestream -
Scala-Forklift
Type-safe data migration tool for Slick, Git and beyond. -
AnormCypher
Neo4j Scala library based on Anorm in the Play Framework -
Troy
Type-safe and Schema-safe Scala wrapper for Cassandra driver -
neotypes
Scala lightweight, type-safe, asynchronous driver for neo4j -
Scruid
Scala + Druid: Scruid. A library that allows you to compose queries in Scala, and parse the result back into typesafe classes. -
Clickhouse-scala-client
Clickhouse Scala Client with Reactive Streams support -
Tepkin
Reactive MongoDB Driver for Scala built on top of Akka IO and Akka Streams. -
CouchDB-Scala
A purely functional Scala client for CouchDB -
Couchbase
The Couchbase Monorepo for JVM Clients: Java, Scala, io-core… -
ScalaRelational
Type-Safe framework for defining, modifying, and querying SQL databases -
ReactiveCouchbase
Play 2 plugin for ReactiveCouchbase -
lucene4s
Light-weight convenience wrapper around Lucene to simplify complex tasks and add Scala sugar. -
ReactiveNeo
[DISCONTINUED] Reactive type-safe Scala driver for Neo4J -
scala-migrations
Database migrations written in Scala -
GCP Datastore Akka Persistence Plugin
akka-persistence-gcp-datastore is a journal and snapshot store plugin for akka-persistence using google cloud firestore in datastore mode.
Build time-series-based applications quickly and at scale.
Do you think we are missing an alternative of Scala ActiveRecord or a related project?
README
Scala ActiveRecord

scala-activerecord is an ORM library for Scala.
This library is inspired by ActiveRecord of Ruby on Rails. It is designed following the CoC(Convention over Configuration), DRY(Don't Repeat Yourself) principles.
Minimal example
- Sample snippet: Scastie
Model implementation:
package models
import com.github.aselab.activerecord._
import com.github.aselab.activerecord.dsl._
case class Person(name: String, age: Int) extends ActiveRecord
object Person extends ActiveRecordCompanion[Person]
Schema definition:
package models
import com.github.aselab.activerecord._
import com.github.aselab.activerecord.dsl._
object Tables extends ActiveRecordTables {
val people = table[Person]
}
ActiveRecord model usage:
import com.github.aselab.activerecord.dsl._
import models._
import scala.language.postfixOps
object App extends App {
Tables.initialize
Person("person1", 25).save()
Person("person2", 18).save()
Person("person3", 40).save()
Person("person4", 18).save()
Person.findBy("name", "person1") //=> Some(Person("person1", 25))
Person.findBy("age", 55) //=> None
Person.findAllBy("age", 18).toList //=> List(Person("person2", 18), Person("person4", 18))
Person.where(_.age.~ >= 20).orderBy(_.age desc).toList //=> List(Person("person3", 40), Person("person1", 25))
Tables.cleanup
}
Schema and query DSL is based on Squeryl.
Features
- Auto connection management
- Composable query operation
- Callback
- Validation
- Association
Documents and other resources
Web framework support
License
MIT
*Note that all licence references and agreements mentioned in the Scala ActiveRecord README section above
are relevant to that project's source code only.