proteus
Our great sponsors
proteus | bazel-postgres-sketch | |
---|---|---|
2 | 2 | |
195 | 3 | |
- | - | |
3.5 | 0.0 | |
5 months ago | over 2 years ago | |
Go | Shell | |
MIT 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.
proteus
-
ORM vs SQL Builder in Go
I have a SQL mapping tool called Proteus at https://github.com/jonbodner/proteus . I spoke about its design and performance at GopherCon 2017: https://www.youtube.com/watch?v=hz6d7rzqJ6Q
-
We Went All in on Sqlc/Pgx for Postgres and Go
If you are looking for a way to map SQL queries to type safe Go functions, take a look at my library Proteus: https://github.com/jonbodner/proteus
Proteus generates functions at runtime, avoiding code generation. Performance is identical to writing SQL mapping code yourself. I spoke about its implementation at GopherCon 2017: https://www.youtube.com/watch?v=hz6d7rzqJ6Q
bazel-postgres-sketch
-
We Went All in on Sqlc/Pgx for Postgres and Go
I uploaded most of our Workspace setup here: https://github.com/jschaf/bazel-postgres-sketch. The tooling is a bunch of Go to manage the Postgres process. Basically, give it schema files and receive a running database with a tear down command.
We make temp instances of Postgres quickly by:
- avoiding Docker, especially on Mac
- keeping the data dir on tmpfs
- Disable initdb cleanup
- Disable fsync and other data integrity flags
- Use unlogged tables.
- Use sockets instead of TCP localhost.
For a test suite, it was 12x faster to call createdb with the same Postgres cluster for each test than than to create a whole new db cluster. The trick was to create a template database after loading the schema and use that for each createdb call.
-
In Praise of PostgreSQL
Sure, here's sketch of how it works: https://github.com/jschaf/bazel-postgres-sketch
What are some alternatives?
sqlite
goyesql - Parse SQL files with multiple named queries and automatically prepare and scan them into structs.
gnorm - A database-first code generator for any language
pike - Generate CRUD gRPC backends from single YAML description.
pggen - A database first code generator focused on postgres
better-sqlite3 - The fastest and simplest library for SQLite3 in Node.js.
jet - Type safe SQL builder with code generation and automatic query result data mapping
SQLBoiler - Generate a Go ORM tailored to your database schema.
ccgo
pronto - Protobuf ORM
ent - An entity framework for Go