postgres-typed
vox
postgres-typed | vox | |
---|---|---|
5 | 13 | |
26 | 325 | |
- | - | |
0.0 | 5.8 | |
over 1 year ago | 7 months ago | |
TypeScript | D | |
MIT License | Boost Software 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.
postgres-typed
-
Kysely: TypeScript SQL Query Builder
This is really cool, will look into using it in future projects!
I also made a tool (https://github.com/vramework/schemats) that generates the types directly from the db, which means whenever you do a DB migration your database types automatically update. Was forked from the original schemats library a couple years ago.
I also created a lightweight library ontop of pg that is less of a query builder and more of a typed CRUD + SQL for non trivial queries (https://github.com/vramework/postgres-typed). Most queries I deal with in a day to day is usually crud so I find it a little easier, but it's much less powerful then Kysely! I fall more into the camp of writing complex queries in SQL with small helpers and writing simple ones with util functions and typescript
-
Ask HN: Who Wants to Collaborate?
I'm working on a few projects, from one/two days to platforms.
The first is OS and is a simple nodeJS environment to deploy applications via lambda and express quickly. Sort of like nestJS except less decorators and more functional (https://vramework.io/). I already know of a few other colleagues that rolled their own propriety versions of this to support enterprise and cloud deployments so decided to OS it.
The other OS project is a strongly typed postgres/mysql driver. The idea is to generate typescript definitions directly from postgres (https://github.com/vramework/schemats) and then have a think layer ontop of pg-node that gives you strongly typed queries (https://github.com/vramework/postgres-typed).
An open-source project I spent a few years on the core team is https://deepstream.io/, a realtime-server that allows you to mix and match multiple streaming protocols (mqtt/websocket/others) and allow those clients to talk to each other using pub-sub and records. I'm not longer working for it but wanted to give it a shout out!
On a non OS project, I have been working on an immersive audio platform for a while now. The main goal is to allow users to pick and choose how audio books progress, and also have a live session mode which allows users to record their pulse / answer questions and a few other metrics and associate it with sentences. I pretty much built and deployed all of it but require some advice/brainstorming on how to proceed now. I built it to satisfy an itch when I was practicing shamanism during the first lockdown when I was in-between contracts / taking time off.
I also want to build a simple web-pages strategy game based around eco-education, but don't have the bandwidth . If anyone is interested in mixing together gamification and eco-village building might be a fun conversion to bounce ideas!
All the OS projects above were used to support my personal/a couple professional projects over the last few years.
Email in profile
-
Write an SQL query builder in 150 lines of Python
I agree with your point that adding multiple layers = more attack vectors and abstraction of a really good domain specific language. But what seems to happen on most of the projects I work on is we end up hiding away extremely common logic behind helper functions. It always starts off with SQL and then slowly gets moved into higher level functions that offer a better developer experience.
Shameless plug, but I just posted a library I wrote (for node https://github.com/vramework/postgres-typed/blob/master/READ...) which pretty much is a tiny layer ontop of pg-node (which is query based / with value parameters) and provides small util functions with typescript support derived straight from postgres tables.
In an ideal world (one I think we are getting very close to) I think we will end up having SQL queries validated in our code against the actual DB structure the same way we have any other compilation error. But until then we'll need to rely on tests or helper libraries, and for the purpose of refactoring and development I find the latter more enjoyable (although still far from perfect).
- Show HN: Node Typed Postgres Query Builder
- Show HN: Typed Postgres CRUD Queries
vox
- The Styx Programming Language
- Vox – multiparadigm PL inspired by D, Jai, and Zig
-
Embeddable script compiler for video games
I chase the same goal with Vox, although it is written in D.
-
SSA && Middle End resources
Just somewhere to point me, because while I do understand SSA a bit though I can't seem to make progress learning about it (dont know where from). I found https://github.com/MrSmith33/vox/blob/master/internals.md which kinda feeds me information but probably not enough.
- Open source compilers that use three address code as IR?
-
Ask HN: Who Wants to Collaborate?
Looking for contributors to Vox programming language/compiler: Statically typed, compiled and embeddable language, primarily focused on gamedev. It uses custom backend to keep low compile-times and small size. Written in D language.
https://github.com/MrSmith33/vox
-
Ast Arenas
Because it is easier to have a free-list in a dedicated array arena, so you could reuse memory when you free it (and you need to grow arrays when you fill them). I was lazy and did 13 array arenas each dedicated to allocating fixed size chunks, from 16 bytes to 64k bytes. Bigger sizes currently go to malloc/free. And I restrict arrays to PoT sizes, so they only request PoT sized chunks from array arenas.
-
Data oriented compiler architecture?
I use this approach in Vox compiler. Everything is stored in arenas including AST nodes and IR. I'm in the process of documenting the design, but I added a bit of description on memory management and IR storage
-
3 address form to 2 address ISA
Tip: Should probably use the Github permalink https://github.com/MrSmith33/vox/blob/35ec440d0c9a475cd4add6093d122cd249b03be9/source/be/reg_alloc/linear_scan.d#L891-L918 so later readers do not go to some random line after you change that file :)
-
Compiler Speed Tests
Here is a CI build
What are some alternatives?
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.
langs
sql-athame - Python tool for slicing and dicing SQL
ldc - The LLVM-based D Compiler.
sql-assassin - Unfancy node.js SQL builder for ES6
yjit - Optimizing JIT compiler built inside CRuby
Typesense - Open Source alternative to Algolia + Pinecone and an Easier-to-Use alternative to ElasticSearch ⚡ 🔍 ✨ Fast, typo tolerant, in-memory fuzzy Search Engine for building delightful search experiences
oil - Oils is our upgrade path from bash to a better language and runtime. It's also for Python and JavaScript users who avoid shell!
deepstream.io - deepstream.io server
godbledger - Accounting Software with GRPC endpoints and SQL Backends
xql - SQL builder and utilities library for node.js (runs in browser as well).
Raylib-CsLo - autogen bindings to Raylib 4.x and convenience wrappers on top. Requires use of `unsafe`