NOTE: This repo (Salat, simple serialization library for case classes) has moved:
Branch: master
Clone or download
Pull request Compare This branch is 15 commits behind salat:master.
rktoomey Merge pull request salat#139 from noahlz/issues/137
Resolve Issue salat#137 When suppressDefaultArgs = true, ObjectId fields without default value cause runtime error
Latest commit 3612c76 Oct 28, 2014
Type Name Latest commit message Commit time
Failed to load latest commit information.
notes 1.9.9 release Aug 20, 2014
project 2.0.0-SNAPSHOT Aug 20, 2014
salat-core/src Issuer salat#137 - Fix. Also, minor refactoring of surrounding (redun… Oct 28, 2014
src/main/ls Prepare for 1.9.1 release Aug 30, 2012
.gitignore Added JSON support for BSONTimestamp type. Aug 28, 2012
.travis.yml Update travis-ci to test against jdk 8 as well as jdk 7. Aug 20, 2014 add badge Oct 9, 2014

Stories in Ready


Salat is a simple serialization library for case classes.

Salat currently supports bidirectional serialization for:

  • MongoDB's DBObject (using casbah)
  • JSON (using JSON4S)
  • maps


Simplicity. Flexibility. Consistency.

Your model there and back again should just work.

Get Salat

Salat publishes snapshots and releases to OSS Sontatype.

Stable Release

Available for Scala 2.10 and 2.11. Based on Casbah 2.7.1.

"com.novus" %% "salat" % "1.9.9"

Release Notes


Build Status

Available for Scala 2.10 and 2.11. Based on Casbah 2.7.1.

"com.novus" %% "salat" % "2.0.0-SNAPSHOT"

Release Notes (In Progress)

Legacy support

Please remove all references to from your build files. After 0.0.8, Salat will be hosted exclusively by Sonatype.

If you are not using sbt 0.11.2+, explicitly add OSS Sonatype to your resolvers:

resolvers += "Sonatype OSS Snapshots" at ""

Scala 2.9.3

Based on Casbah 2.7.0.

"com.novus" %% "salat" % "1.9.7"

Scala 2.9.2

Based on Casbah 2.6.4.

"com.novus" %% "salat" % "1.9.5"

Scala 2.8.1

Based on Casbah 2.1.5-1.

"com.novus" %% "salat" % "0.0.8"

Release Notes

Play 2 plugin

Are you using Play framework? Make sure to see our Play support wiki page, and check out Leon Radley's plugin at leon/play-salat.


See the wiki and the mailing list.

What does Salat support?

See Supported Types.

What doesn't Salat support?

We don't have the resources to support everything. Here are some things Salat doesn't do:

  • Java compatibility
  • non-case classes
  • type aliases
  • nested inner classes
  • varags
  • arrays
  • multiple constructors
  • tuples
  • Option containing a collection (see collection support for workarounds)
  • relationship management like a traditional ORM

How does Salat work?

Salat uses the Product trait implemented by case classes with the hi-fi type information found in pickled Scala signatures.

Details are thin on the ground, but here's where we got started: