Web/Databases and Persistence: Difference between revisions
(First iteration, need to add HaskellDB among others) |
m (Removed gratuitious bits) |
||
Line 8: | Line 8: | ||
* HDBC is modeled loosely on Perl’s DBI interface, though it has also been influenced by Python’s DB-API v2, JDBC in Java, and HSQL in Haskell. | * HDBC is modeled loosely on Perl’s DBI interface, though it has also been influenced by Python’s DB-API v2, JDBC in Java, and HSQL in Haskell. | ||
* HDBC is a from-scratch effort. It is not a reimplementation of HSQL, though its purpose is the same. | * HDBC is a from-scratch effort. It is not a reimplementation of HSQL, though its purpose is the same. | ||
'''License:''' LGPL | '''License:''' LGPL |
Revision as of 16:39, 1 October 2010
Below is a list of databases that have been used or designed for web development. See also: Database Interfaces
HDBC
HDBC (Haskell Database Connectivity) provides an abstraction layer between Haskell programs and SQL relational databases. This lets you write database code once, in Haskell, and have it work with any number of backend SQL databases (MySQL, Oracle, PostgreSQL, ODBC-compliant databases, etc.)
- HDBC provides an abstraction layer between Haskell programs and SQL relational databases. This lets you write database code once, in Haskell, and have it work with any number of backend SQL databases (MySQL, Oracle, PostgreSQL, ODBC-compliant databases, etc.)
- HDBC is modeled loosely on Perl’s DBI interface, though it has also been influenced by Python’s DB-API v2, JDBC in Java, and HSQL in Haskell.
- HDBC is a from-scratch effort. It is not a reimplementation of HSQL, though its purpose is the same.
License: LGPL
Author: John Goerzen
Maintainer: John Goerzen <jgoerzen@complete.org>
Home page: http://github.com/jgoerzen/hdbc/wiki
Documentation: http://hackage.haskell.org/packages/archive/HDBC/latest/doc/html/Database-HDBC.html
Persistent
Persistent is a high-level, non-relational, type-safe persistence layer for Haskell. Its design allows it to be used on both SQL and non-SQL backends. Heavy usage of type families allows strong type guarantees, while usage of template haskell removes the need for boilerplate coding.
License: BSD3
Author: Michael Snoyman <michael@snoyman.com>
Maintainer: Michael Snoyman <michael@snoyman.com>
Documentation: http://docs.yesodweb.com/persistent/
Packages & repositories
- Hackage: http://hackage.haskell.org/package/persistent
- Github: http://github.com/snoyberg/persistent
Takusen
Takusen is a DBMS access library. Like HSQL and HDBC, we support arbitrary SQL statements (currently strings, extensible to anything that can be converted to a string).
Takusen's unique selling point is safety and efficiency. We statically ensure all acquired database resources - such as cursors, connections, and statement handles - are released, exactly once, at predictable times. Takusen can avoid loading the whole result set in memory, and so can handle queries returning millions of rows in constant space. Takusen also supports automatic marshalling and unmarshalling of results and query parameters. These benefits come from the design of query result processing around a left-fold enumerator.
Currently we fully support ODBC, Oracle, Sqlite, and PostgreSQL.
License: BSD3
Author: Alistair Bayley, Oleg Kiselyov
Maintainer: alistair@abayley.org, oleg@pobox.com
Announcement: http://www.haskell.org/pipermail/haskell-cafe/2010-July/081224.html
Packages & repositories