squeal-postgresql
beam


squeal-postgresql | beam | |
---|---|---|
5 | 7 | |
368 | 593 | |
0.8% | 1.2% | |
4.6 | 8.7 | |
3 months ago | 4 days ago | |
Haskell | Haskell | |
BSD 3-clause "New" or "Revised" License | MIT 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
beam
-
Optimizing a Rust GPU matmul kernel
I'm not familiar with GPUs specifically, but I have seen this for ORMs that support multiple SQL dialects (e.g. [0]).
A great technique is called 'tagless final encoding' [1]. Using this technique, you can specify capabilities of an embedded domain-specific language (eDSL) such that you can have a shared (but narrow) common set of features, while allowing specializations of this eDSL to support extra features.
[0]: https://github.com/haskell-beam/beam
[1]: https://nrinaudo.github.io/articles/tagless_final.html
-
Why Haskell?
https://haskell-beam.github.io/beam/ is fantastic, but good luck understanding it if you don't already know some Haskell
-
How to use PostgreSQL with Haskell: beam
Beam “is a highly-general library for accessing any kind of database with Haskell”. Beam makes extensive use of GHC's Generics mechanism — no Template Haskell.
-
How can database libraries be compared to each other?
One anecdotal opinion from a rando reddit user: I prefer beam despite the boilerplate and more complex types because of the authors make a serious attempt at sql-standards compliance: https://github.com/haskell-beam/beam
- A more functional approach
-
Haskell sql multi-engine library
It's actively worked on: https://github.com/haskell-beam/beam Makes heavy use of the type level though.
-
Reflections On Using Haskell For My Startup
The beam library is one example of this: https://github.com/haskell-beam/beam/pulls
What are some alternatives?
acid-state - Add ACID guarantees to any serializable Haskell data structure
yxdb-utils - Utilities for parsing Alteryx Database format
selda - A type-safe, high-level SQL library for Haskell
esqueleto - Bare bones, type-safe EDSL for SQL queries on persistent backends.
sqlite-simple - Mid-level bindings for sqlite
DSH - Database-Supported Haskell

