Add ACID guarantees to any serializable Haskell data structure.

Version on this page:0.16.1
LTS Haskell 22.26:
Stackage Nightly 2024-06-18:
Latest on Hackage:

See all snapshots acid-state appears in

LicenseRef-PublicDomain licensed by David Himmelstrup
Maintained by Lemmih
This version can be pinned in stack with:acid-state-0.16.1@sha256:e236ee7b72ffeda8d49b69549a723f0655b0d1b178951c6cc7a1dc6c92783225,6205

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



  • Support GHC-9.0.2, template-haskell 2.18


  • support network-3.x and ghc-8.8.1
  • Fix tests (#131)
  • Haddock documentation fixes
  • Update build dependency constraints


  • adds acid-state-repair recovery tool (#126)
  • parameterize the underlying serialization library (#96)
  • support safecopy-0.10, which supports GHC.Generics (#128)


  • 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)