Travis

Athougies

Beam

Summary

Beam is a Haskell interface to relational databases. Beam is written in a pure Haskell, and doesn't make use of Template Haskell or non-intuitive embedded domain specific languages

Beam is a Haskell interface to relational databases. Its key strengths are its type-safety and intuitive syntax. Beam is written in pure Haskell, and doesn’t make use of Template Haskell or non-intuitive embedded domain specific languages. Instead it makes extensive use of Generics, Closed Type Families, and other elements of Haskell’s strong type system. Unlike other popular Haskell database interfaces, Beam tries to work with the compiler rather than in spite of it.

Documentation and Tutorials

A series of tutorial for the current version of beam can be found in these tutorials:

You may also be interested in the API reference on hackage and in the GitHub sources.

Known limitations

Beam is ready to be used in production, but you may encounter some bugs. You should check the SQL that is being generated to verify that the correct queries are being issued. You can have beam dump the queries to the console by using openDatabaseDebug to open your beam database.

The beam API is fairly stable, but there may be some minor changes. In each case, I’ll document how to update your code in case of any breaking changes.

Please send any bug reports or pull requests to GitHub. If you have any beam-specific questions, feel free to e-mail me at travis at athougies.net.

Comparisons to other libraries

persistent

opaleye

HaskellDB