[Haskell-cafe] ANNOUNCE: Groundhog - high-level database library

Tom Murphy amindfv at gmail.com
Fri Sep 14 00:28:34 CEST 2012

How does this compare with other high-level Haskell db libraries?

On Sep 13, 2012 2:25 PM, "Boris Lykah" <lykahb at gmail.com> wrote:

> I am happy to announce a new version of Groundhog, a library for fast
> high-level database access:
>     http://hackage.haskell.org/package/groundhog
>     http://hackage.haskell.org/package/groundhog-th
>     http://hackage.haskell.org/package/groundhog-postgresql
>     http://hackage.haskell.org/package/groundhog-sqlite
> Groundhog has been completely overhauled since the last release.
> Notably, it got support for PostgreSQL and natural foreign keys. I
> believe that it is a big step forward as this brings more flexibility
> to the design of the relational schemas while keeping the applications
> independent of the storage layer. Some of the solutions, particularly
> schema migration were based on Persistent code.
> Please see examples at
> http://github.com/lykahb/groundhog/tree/master/examples.
> Features:
> * Support for Sqlite and PostgreSQL.
> * Natural and composite foreign keys. Earlier it was possible to
> reference an entity only by the mandatory integer primary key. Now an
> entity can have several keys including autoincrement primary key
> (optional) and unique keys which have one or more columns.
> * Full support of embedded datatypes. You can access a field that
> contains an embedded datatype as a whole, or access some of the inner
> subfields individually. This powerful mechanism has allowed
> implementation of the composite keys, and can be used in future to
> work with PostgreSQL composite types or MongoDB embedded documents.
> Instead of serializing value to string, the Groundhog backends flatten
> tree of embedded datatypes to db columns.
> * Projections. You can choose what columns to query from a table in a
> type-safe manner.
> * Initialization and migration of database schema.
> * Sum types and polymorphic types.
> * Expression DSL for use in queries.
> * Basic list support.
> * YAML-based settings mechanism. It separates datatype definition and
> description which facilitates modularity. The settings are inferred
> from the analysis of the difinition, and overridden with values set by
> user.
> The Criterion benchmarks are available at
> http://lykahb.github.com/groundhog/SqliteBench.html and
> http://lykahb.github.com/groundhog/PostgreSQLBench.html.
> Future plans:
> * Support for joins
> * Database indexes
> * Investigate options for implementing MongoDB and MySQL backends
> Your feedback, suggestions for improvement and criticism are welcome.
> --
> Regards,
> Boris
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20120913/96747b7d/attachment.htm>

More information about the Haskell-Cafe mailing list