Add ACID guarantees to any serializable Haskell data structure.

LTS Haskell 8.24:0.14.3
Stackage Nightly 2017-02-11:0.14.2
Latest on Hackage:0.15.0

See all snapshots acid-state appears in

LicenseRef-PublicDomain licensed by David Himmelstrup

Use regular Haskell data structures as your database and get stronger ACID guarantees than most RDBMS offer.



  • change text of error messages to include module names (#116)
  • depend on filelock library to avoid locking bug (#91)
  • permit events that are polymorphic in the base monad, with a MonadReader/MonadState constraint (#94)
  • fix a minor memory leak (#104)
  • add a test suite and extend examples (#98)
  • improve benchmarks (#113)
  • expose internal modules (subject to change in the future)


  • support building on GHC 8.2
  • update links from to


  • createCheckpoint now cuts a new events file (#74)


  • fix bug in archiveLog that resulted in logs being moved prematurely (#22)
  • tweaks for GHC 8.0.x, template-haskell 2.11.x
  • fix compilation of benchmarks


  • fixes for cereal 0.5 while maintaining cereal 0.4 compatibility. IMPORTANT: cereal 0.5 / safecopy 0.9 change the serialization format of Float/Double. Migration should be performed automatically on old data. However, you should be aware that once you upgrade to safecopy 0.9 / cereal 0.5, your data will be migrated and not readable by older versions of your application which are compiled against safecopy 0.8 / cereal 0.4.

  • additional fixes for TH and kinded type variables (#56)

comments powered byDisqus