yesql
powderkeg
yesql | powderkeg | |
---|---|---|
4 | 1 | |
1,444 | 158 | |
- | 0.0% | |
0.0 | 10.0 | |
over 1 year ago | over 5 years ago | |
Clojure | Clojure | |
Eclipse Public License 1.0 | Eclipse Public License 1.0 |
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.
yesql
-
Python: Just Write SQL
There's a whole family of libraries like that. Yesql is the first I became aware of. The repo has an (incomplete) list of ports to other languages: https://github.com/krisajenkins/yesql#other-languages
- Is it possible/useful to extract SQL queries into a "config file"?
-
Library Writing Realizations
> People will not read the docs.
Reminds me of a pull request I made a while ago
https://github.com/krisajenkins/yesql/pull/151/files
The first piece of code on the readme is "not the solution" (lol), and everybody I knew who was trying to use that library was copy-pasting that specific piece of code from the readme.
-
Rich Hickey – open-source is Not About You
If you're not familiar with lisps in general, it might be hard to grok the differences between lisp-macros (as used in Clojure) and "normal" macros you see in other languages.
But, if you are familiar already, and just wanna see examples of neat macros that makes the API nicer than what a function could provide, here are a few:
- https://github.com/clojure/core.async/blob/master/examples/w...
- https://github.com/weavejester/compojure
- https://github.com/ptaoussanis/timbre
- https://github.com/krisajenkins/yesql
powderkeg
-
Python: Just Write SQL
As a data engineer, the pattern the OP shares is very familiar. I find it much preferable to use of ORMs for wide variety of reasons. However, I view implementing with SQL as an antiquated problem rather than a pragmatic feature. The evolution of this pattern would be to integrate database querying into languages more directly and eliminate SQL entirely. While this could be achieved in Python, I find that a language like Clojure, via functional programming (FP) primitives and transducers, is a natural candidate, particularly for JVM implemented databases. Rather than encapsulating SQL via query building or ORM based APIs, an FP core could be integrated into database engines to allow, via transducers, complex native forms to be executed directly across database clusters. Apache Spark is an analog of this. In particular the Clojure project, powderkeg (https://github.com/HCADatalab/powderkeg) demonstrates the potential of utilizing transducers in a database cluster context.
What are some alternatives?
sql-template-tag - ES2015 tagged template string for preparing SQL statements, works with `pg`, `mysql`, and `sqlite`
pugsql - A HugSQL-inspired database library for Python
mini_sql - a minimal, fast, safe sql executor
typed-sql
core.async - Facilities for async programming and communication in Clojure
squiller - Generate boilerplate from annotated SQL queries
timbre - Pure Clojure/Script logging library
sqlz - Simple struct/slice/chan mapper for SQL rows.
compojure - A concise routing library for Ring/Clojure