Our great sponsors
HDBC | opaleye | |
---|---|---|
0 | 6 | |
116 | 559 | |
1.7% | - | |
4.9 | 9.4 | |
3 months ago | 24 days ago | |
Haskell | Haskell | |
BSD 3-clause "New" or "Revised" License | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
HDBC
We haven't tracked posts mentioning HDBC yet.
Tracking mentions began in Dec 2020.
opaleye
- What are things that the Haskell scene lacks the most?
-
Out of memory when building product-profunctors
Nice! Well done. If you have any more questions about product-profunctors or Opaleye then please let me know. It's best to ask by [opening an issue](https://github.com/tomjaguarpaw/haskell-opaleye/issues/new).
- Embedded Pattern Matching
- How to simply do opaleye field type conversion
-
Against SQL
The only way out that I can see is to design embedded domain specific languages (EDSLs) that inherit the expressiveness, composability and type safety from the host language. That's what Opaleye and Rel8 (Postgres EDSLs for Haskell do. Haskell is particularly good for this. The query language can be just a monad and therefore users can carry all of their knowledge of monadic programming to writing database queries.
This approach doesn't resolve all of the author's complaints but it does solve many.
Disclaimer: I'm the author of Opaleye. Rel8 is built on Opaleye. Other relational query EDSLs are available.
-
Combining Deep and Shallow Embedding of Domain-Specific Languages
For an example of how this plays out in practice observe Opaleye's MaybeFields (generously contributed by Shane and /u/ocharles at Circuithub). The definition is essentially identical to Optional from the paper. Instead of a specialised typeclass Inhabited we use the ProductProfunctor NullSpec (which happens to conjure up an SQL NULL, but it could be any other witness).
What are some alternatives?
esqueleto - Bare bones, type-safe EDSL for SQL queries on persistent backends.
database-migrate - database-migrate haskell library to assist with migration for *-simple sql backends.
mywatch
rel8 - Hey! Hey! Can u rel8?
HongoDB - A Simple Key Value Store
squeal-postgresql - Squeal, a deep embedding of SQL in Haskell
erd - Translates a plain text description of a relational database schema to a graphical entity-relationship diagram.
opaleye-classy - Classy MTL extension of the lovely Opaleye library.
pool-conduit - Persistence interface for Haskell allowing multiple storage methods.
classy-influxdb-simple
persistent-database-url
beam - A type-safe, non-TH Haskell SQL library and ORM