powderkeg
yesql
powderkeg | yesql | |
---|---|---|
1 | 4 | |
158 | 1,444 | |
0.0% | - | |
10.0 | 0.0 | |
over 5 years ago | over 1 year 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.
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.
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
What are some alternatives?
pugsql - A HugSQL-inspired database library for Python
sql-template-tag - ES2015 tagged template string for preparing SQL statements, works with `pg`, `mysql`, and `sqlite`
typed-sql
mini_sql - a minimal, fast, safe sql executor
squiller - Generate boilerplate from annotated SQL queries
core.async - Facilities for async programming and communication in Clojure
sqlz - Simple struct/slice/chan mapper for SQL rows.
timbre - Pure Clojure/Script logging library
compojure - A concise routing library for Ring/Clojure