opaleye
Preql
Our great sponsors
opaleye | Preql | |
---|---|---|
9 | 16 | |
593 | 594 | |
- | - | |
8.5 | 0.0 | |
13 days ago | over 1 year ago | |
Haskell | Python | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
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.
opaleye
-
What's your favorite Database EDSL/library in Haskell?
If you ever have any questions about Opaleye I'm happy to help. Feel free to open an issue to ask about anything any time.
-
Persistent vs. beam for production database
Sounds like Opaleye isn't on your list of choices, but if it is then feel free to ask me any questions, any time by filing an issue (I'm the Opaleye maintainer).
-
How to build a large-scale haskell backend for a photo sharing app (some questions)
Opaleye is Posgres-only, and Postgres does such a good job of optimizing queries that performance issues basically don't arise. I have a long-standing invitation to improve Opaleye's query generation as soon as anyone can produce a repeatable example of a poorly-performing query. In Opaleye's eight years, no one ever has. There's a thread where two reports have come close, but it's still not clear that that's simply due to using a six year old version of Postgres.
- 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.
[1] https://github.com/tomjaguarpaw/haskell-opaleye/
-
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).
Preql
- Pql, a pipelined query language that compiles to SQL (written in Go)
-
PRQL, Pipelined Relational Query Language
Hm, I just realized there are two similar projects with very similar names: this one, and
https://github.com/erezsh/Preql
-
Oops, I wrote yet another SQLAlchemy alternative (looking for contributors!)
First, let me introduce myself. My name is Erez. You may know some of the Python libraries I wrote in the past: Lark, Preql and Data-diff.
-
Why don't SQL transpilers take off?
Example of language that implements this: https://github.com/erezsh/Preql
-
Even Babies fear … Fu**ing SQL
But what about PreQL?
-
Show HN: PRQL – A Proposal for a Better SQL
It seems people here are really interested in alternatives to SQL. So perhaps you'd also like to have a look at https://github.com/erezsh/Preql
(Same name, same goal, different approach, and already working)
-
Made a Programing language using python
There's also lark, which is used by a plethora of projects (I haven't used it, but I heard about PreQL on a podcast where they talk for a bit about what it's like to develop a new language in lark)
-
A primer on programming languages for data science
Just want to mention preql exists as an option - https://github.com/erezsh/Preql
- Ask HN: SQL tooling: REPL-likes, Intellisense, etc.
-
Against SQL
I share the author's point of view, which led me to start a new relational programming language that compiles to SQL. If that sounds interesting, you can find it here: https://github.com/erezsh/Preql
What are some alternatives?
esqueleto - Bare bones, type-safe EDSL for SQL queries on persistent backends.
prql - PRQL is a modern language for transforming data — a simple, powerful, pipelined SQL replacement
mywatch
PyPika - PyPika is a python SQL query builder that exposes the full richness of the SQL language using a syntax that reflects the resulting query. PyPika excels at all sorts of SQL queries but is especially useful for data analysis.
HDBC - Haskell Database Connectivity
rel8 - Hey! Hey! Can u rel8?
database-migrate - database-migrate haskell library to assist with migration for *-simple sql backends.
malloy - Malloy is an experimental language for describing data relationships and transformations.
HongoDB - A Simple Key Value Store
db-benchmark - reproducible benchmark of database-like ops
squeal-postgresql - Squeal, a deep embedding of SQL in Haskell
prosto - Prosto is a data processing toolkit radically changing how data is processed by heavily relying on functions and operations with functions - an alternative to map-reduce and join-groupby