squeal-postgresql
squealgen
squeal-postgresql | squealgen | |
---|---|---|
5 | 3 | |
351 | 25 | |
0.0% | - | |
6.6 | 0.0 | |
about 1 month ago | almost 3 years 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.
squeal-postgresql
-
Choosing the right abstraction level for SQLite library.
You may want to have a look at squeal that someone mentioned the other day in the comments of this post.
-
What's your favorite Database EDSL/library in Haskell?
https://github.com/morphismtech/squeal, because, to my knowledge, it's the only option that both maintains deep type safety without losing the expressive power of SQL. It can even typecheck your database migrations. There's even a tool to generate the types of your schema based on an existing database: https://github.com/mwotton/squealgen
-
Writing a simple Haskell Persistence layer using Generics and Reflection
Yep, https://github.com/morphismtech/squeal does this too.
-
Practical Haskell, 3rd edition, is out!
If you want an example of a type-safe SQL eDSL in Haskell that doesn't have those problems (and supports more Postgres features than esquelto), I'd recommend https://github.com/morphismtech/squeal.
- New version of Squeal, 0.9 released
squealgen
-
What's your favorite Database EDSL/library in Haskell?
https://github.com/morphismtech/squeal, because, to my knowledge, it's the only option that both maintains deep type safety without losing the expressive power of SQL. It can even typecheck your database migrations. There's even a tool to generate the types of your schema based on an existing database: https://github.com/mwotton/squealgen
-
How can type inference represent calculation?
Indeed, this is exactly what squeal does. You define (or generate from your schema) a type-level description of your tables, including whether each column can be null or not, and squeal type-checks your SQL queries, including checking whether those fields should be wrapped in a Maybe or not. In the linked documentation, note how the user_id and email fields are defined:
-
How to dynamically create types?
If the DB is Postgres, then this is actually probably a good usecase for Squeal, along with squealgen. It has a bit of a learning curve, but what you get is the ability to read an existing DB and generate a type-level schema from it automatically, which can then be used for completely type-safe queries. It also supports type-level migrations.
What are some alternatives?
selda - A type-safe, high-level SQL library for Haskell
postgrest - REST API for any Postgres database
beam - A type-safe, non-TH Haskell SQL library and ORM
rel8 - Hey! Hey! Can u rel8?
persistent-mysql-haskell - Persistence interface for Haskell allowing multiple storage methods.
opaleye
sqlite-simple - Mid-level bindings for sqlite
ghc - Mirror of the Glasgow Haskell Compiler. Please submit issues and patches to GHC's Gitlab instance (https://gitlab.haskell.org/ghc/ghc). First time contributors are encouraged to get started with the newcomers info (https://gitlab.haskell.org/ghc/ghc/wikis/contributing).
acid-state - Add ACID guarantees to any serializable Haskell data structure
hasql - The fastest PostgreSQL libpq-based driver for Haskell
esqueleto - Bare bones, type-safe EDSL for SQL queries on persistent backends.