Difference between revisions of "Applications and libraries/Database interfaces"
Jump to navigation
Jump to search
EndreyMark (talk | contribs) (Because there are more materials on HaskellDB than its two official home, so I create a separate wikipage for it: Libraries and tools/Database interfaces/HaskellDB) |
NikitaVolkov (talk | contribs) m (Update the info on Hasql) |
||
(45 intermediate revisions by 17 users not shown) | |||
Line 1: | Line 1: | ||
⚫ | |||
− | {{unknown copyright}} |
||
⚫ | |||
+ | |||
⚫ | |||
+ | === Current === |
||
+ | |||
+ | ;[http://code.haskell.org/takusen Takusen] |
||
+ | :A library to interface to Oracle, Sqlite, and Postgres, with an API based on a left-fold enumerator. Now hosted at [http://code.haskell.org/takusen code.haskell.org]. ([http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Takusen Takusen in Hackage]) |
||
+ | |||
+ | ;[http://hackage.haskell.org/package/DSH Database Supported Haskell] |
||
+ | :DSH is a Haskell library for database-supported program execution. Using this library a relational database management system (RDBMS) can be used as a coprocessor for the Haskell programming language, especially for those program fragments that carry out data-intensive and data-parallel computation. |
||
+ | |||
⚫ | |||
⚫ | : 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. Supports SQLite3, PostgreSQL, ODBC (including MySQL). ([http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HDBC HDBC in Hackage]; [[HDBC-Example|an example of its use]].) |
||
+ | |||
+ | ;[https://github.com/m4dc4p/haskelldb HaskellDB] |
||
+ | |||
⚫ | |||
+ | |||
+ | : Both the [http://www.haskell.org/haskellDB original version from Daan Leijen's] HaskellDB and the [https://github.com/m4dc4p/haskelldb HaskellDB more up-to-date GitHub version] (works with latest GHC versions) are relatively platform-independent. |
||
+ | |||
+ | : This close integration makes it possible to do arbitrary computations on the database (like computing the transitive closure). ([http://hackage.haskell.org/cgi-bin/hackage-scripts/package/haskelldb HaskellDB in Hackage]) |
||
+ | |||
+ | ;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/BerkeleyDBXML-0.1 Berkeley DB/DB XML binding] |
||
+ | |||
+ | :See [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/BerkeleyDBXML-0.1 BerkeleyDBXML in Hackage] |
||
;[http://sourceforge.net/forum/forum.php?forum_id=350240 HSQL] |
;[http://sourceforge.net/forum/forum.php?forum_id=350240 HSQL] |
||
− | :HSQL is a simple library which provides an interface to multiple databases. MySQL, PostgreSQL, ODBC, SQLite and Oracle are currently supported. It is part of [http://htoolkit.sourceforge.net/ HToolkit]. |
+ | :HSQL is a simple library which provides an interface to multiple databases. MySQL, PostgreSQL, ODBC, SQLite and Oracle are currently supported. It is part of [http://htoolkit.sourceforge.net/ HToolkit]. ([http://hackage.haskell.org/package/hsql HSQL in Hackage]) |
+ | ;[http://hackage.haskell.org/package/mysql-simple mysql-simple], [http://hackage.haskell.org/package/postgresql-simple postgresql-simple], [http://hackage.haskell.org/package/sqlite-simple sqlite-simple] |
||
− | ;[http://cvs.sf.net/viewcvs.py/haskell-libs/libs/takusen/ Takusen] |
||
+ | :The *-simple packages provide a mid-level database interface to MySQL, PostgreSQL and SQLite. They each have a similar API but do not attempt to generalize to cover multiple database implementations under a single library. This enables each library to expose database-specific features. These libraries rely on SQL queries embedded as strings but do support automatically converting fields to/from the database to Haskell types. |
||
− | :A library to interface to the Oracle DBMS. Part of the [http://sf.net/projects/haskell-libs Haskell-Libs project]. |
||
+ | ;[https://github.com/nikita-volkov/hasql Hasql] |
||
− | ;[http://haskelldb.sourceforge.net/ HaskellDB] |
||
+ | :PostgreSQL driver with focus on performance, simplicity and type-safety. The fastest driver around according to [https://nikita-volkov.github.io//hasql-benchmarks/ the benchmarks]. Powers [https://github.com/PostgREST/postgrest PostgREST] a very popular production-grade REST API for PostgreSQL. Comes with a rich [https://github.com/nikita-volkov/hasql#ecosystem ecosystem of libraries]. |
||
⚫ | : |
||
+ | === Non-current === |
||
⚫ | |||
+ | ''Move these to [#Current] if they are updated.'' |
||
⚫ | |||
− | ;[http://members.tripod.com/~sproot/hasql.htm HaSQL] |
||
− | :HaSQL is a Haskell to ODBC interface. HaSQL allows Haskell program to run SQL queries against an ODBC compliant database. Queries with parameters are supported. Data is retrieved from the database as a lazy list. |
||
+ | === Discontinued === |
||
− | ;[http://www.astercity.net/~khaliff/haskell/dbi/dbi.tgz libpq binding] |
||
− | :A Haskell binding to libpq, a client-side PostgreSQL programming library, together with a simple DBI for Haskell. It enables the programmer to write database-independent code. |
||
− | ;[http://wiki.di.uminho.pt/ |
+ | ;[http://wiki.di.uminho.pt/twiki/bin/view/Research/PURe/CoddFish CoddFish] |
+ | :PURe [[/CoddFish|See a separate Haskell Wiki page on it]]. It is another type safe and declarative approach to database managament in Haskell. (''Development discontinued in 2006'') |
||
⚫ | :VooDooM reads VDM-SL specifications and applies transformation rules to the datatypes that are defined in them to obtain a relational representation for these datatypes. The relational representation can be exported as VDM-SL datatypes (inserted back into the original specification) or SQL table definitions (which can be fed to a relational DBMS) |
||
+ | |||
+ | |||
+ | ;[http://wiki.di.uminho.pt/twiki/bin/view/Research/PURe/VooDooM VooDooM] |
||
⚫ | :PURe VooDooM reads VDM-SL specifications and applies transformation rules to the datatypes that are defined in them to obtain a relational representation for these datatypes. The relational representation can be exported as VDM-SL datatypes (inserted back into the original specification) or SQL table definitions (which can be fed to a relational DBMS). (''Development discontinued in 2006'') |
||
+ | |||
+ | ;[http://www.volker-wysk.de/mysql-hs/ MySQL-HS] |
||
+ | :MySQL-HS is an interface to the MySQL database. |
||
+ | :''Note: Development was discontinued on 2004-09-21.'' |
||
+ | |||
+ | == Hackage== |
||
+ | |||
+ | *[http://hackage.haskell.org/packages/archive/pkg-list.html#cat:Database Database interfaces on Hackage] |
||
+ | |||
+ | == Related concepts == |
||
+ | |||
+ | [[Relational algebra]] |
||
+ | |||
⚫ |
Latest revision as of 11:56, 17 July 2021
Libraries
Current
- Takusen
- A library to interface to Oracle, Sqlite, and Postgres, with an API based on a left-fold enumerator. Now hosted at code.haskell.org. (Takusen in Hackage)
- Database Supported Haskell
- DSH is a Haskell library for database-supported program execution. Using this library a relational database management system (RDBMS) can be used as a coprocessor for the Haskell programming language, especially for those program fragments that carry out data-intensive and data-parallel computation.
- HDBC
- 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. Supports SQLite3, PostgreSQL, ODBC (including MySQL). (HDBC in Hackage; an example of its use.)
- HaskellDB is a combinator library for expressing queries and other operations on relational databases in a type safe and declarative way. All the queries and operations are completely expressed within Haskell, no embedded (SQL) commands are needed.
- Both the original version from Daan Leijen's HaskellDB and the HaskellDB more up-to-date GitHub version (works with latest GHC versions) are relatively platform-independent.
- This close integration makes it possible to do arbitrary computations on the database (like computing the transitive closure). (HaskellDB in Hackage)
- HSQL
- HSQL is a simple library which provides an interface to multiple databases. MySQL, PostgreSQL, ODBC, SQLite and Oracle are currently supported. It is part of HToolkit. (HSQL in Hackage)
- mysql-simple, postgresql-simple, sqlite-simple
- The *-simple packages provide a mid-level database interface to MySQL, PostgreSQL and SQLite. They each have a similar API but do not attempt to generalize to cover multiple database implementations under a single library. This enables each library to expose database-specific features. These libraries rely on SQL queries embedded as strings but do support automatically converting fields to/from the database to Haskell types.
- Hasql
- PostgreSQL driver with focus on performance, simplicity and type-safety. The fastest driver around according to the benchmarks. Powers PostgREST a very popular production-grade REST API for PostgreSQL. Comes with a rich ecosystem of libraries.
Non-current
Move these to [#Current] if they are updated.
Discontinued
- CoddFish
- PURe See a separate Haskell Wiki page on it. It is another type safe and declarative approach to database managament in Haskell. (Development discontinued in 2006)
- VooDooM
- PURe VooDooM reads VDM-SL specifications and applies transformation rules to the datatypes that are defined in them to obtain a relational representation for these datatypes. The relational representation can be exported as VDM-SL datatypes (inserted back into the original specification) or SQL table definitions (which can be fed to a relational DBMS). (Development discontinued in 2006)
- MySQL-HS
- MySQL-HS is an interface to the MySQL database.
- Note: Development was discontinued on 2004-09-21.
Hackage
Related concepts
This page contains a list of libraries and tools in a certain category. For a comprehensive list of such pages, see Applications and libraries.