Top 23 Go MariaDB Projects
-
go-sql-driver/mysql
Go MySQL Driver is a MySQL driver for Go's (golang) database/sql package (by go-sql-driver)
IDE: use whatever make you productive. I personally use vscode. VCS: git, as golang communities use github heavily as base for many libraries. AFAIK Linter: use staticcheck for linting as it looks like mostly used linting tool in go, supported by many also. In Vscode it will be recommended once you install go plugin. Libraries/Framework: actually the standard libraries already included many things you need, decent enough for your day-to-day development cycles(e.g. `net/http`). But here are things for extra: - Struct fields validator: validator - Http server lib: chi router , httprouter , fasthttp (for non standard http implementations, but fast) - Web Framework: echo , gin , fiber , beego , etc - Http client lib: most already covered by stdlib(net/http), so you rarely need extra lib for this, but if you really need some are: resty - CLI: cobra - Config: godotenv , viper - DB Drivers: sqlx , postgre , sqlite , mysql - nosql: redis , mongodb , elasticsearch - ORM: gorm , entgo , sqlc(codegen) - JS Transpiler: gopherjs - GUI: fyne - grpc: grpc - logging: zerolog - test: testify , gomock , dockertest - and many others you can find here
-
First of all, thank you for SQLAlchemy! If I ever had to make a final choice in how I would interact with a database for a very large project that involves a considerable dev team, I would always bet on SQLAlchemy. Not that I would necessarily like all aspects of it, but when it comes to Python and SQL - “Nobody ever got fired for picking SQLAlchemy.”.
With that out of the way, despite ORMs doing much more than "just writing SQL", it is exactly on that point that I flinch: Most devs should be exposed to SQL. And if your project allows you to build around simple enough abstractions so that you aren't reinventing the wheel, you should definitely be writing SQL. Especially if you don't know SQL yet - which is the growing case of new devs coming into the job market.
You can achieve a lot with SQlAlchemy Core, a tool that I absolutely recommend, but my post is just a simple alternative to get developers to think about their approach. If that results in some devs reconsidering using "full fat" SQLAlchemy and to try SQLAlchemy Core, that's a win for me!
Your gist tries to highlight the difficulty of doing certain things without an ORM. Migrations (as just 1 example) doesn't need to be hard, simple tools like flyway, or migrate (https://github.com/golang-migrate/migrate) achieve a similar result (while also keeping you on the path of writing SQL!). Deep and complex relationships between objects also don't need to be hard - typically people approach this subject with a requirement to be very flexible in the way they want to build queries and objects, but that to me in a sign that maybe they should reconsider their business logic AND reconsider that, just maybe, their project doesn't require all that flexibility, it is fairly straightforward to extend objects and introduce some more complex representations as and when it is needed - will all of this make me write code faster? Absolutely not. That is why you have spent so much time perfecting SQLAlchemy, but then again, I am not advocating for devs to go and replace their usage of ORMs, just presenting an alternative that may or may not fit their needs for a new project + give devs the chance to learn something that the ORM might have taken away.
-
InfluxDB
Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.
-
Project mention: xo/usql: Universal command-line interface for SQL databases | /r/devel | 2023-06-08
-
-
-
I use it with ddev for local development.
-
The same company that stopped officially maintaining their golang library when it wasn't getting "the growth we were hoping for".
-
SonarQube
Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.
-
Project mention: Open-sourcing SQX, a way to build flexible database models in Go | news.ycombinator.com | 2023-09-02
We are really happy using jet. It lets you write type safe SQL and can read the results into structs- including joins into slice fields.
-
gnomock
Test your code without writing mocks with ephemeral Docker containers 📦 Setup popular services with just a couple lines of code ⏱️ No bash, no yaml, only code 💻
https://github.com/orlangure/gnomock does this pretty well, but I liked your solution too, it is neat.
-
Atlas hasn’t made it on my radar until now — surprising considering how many stars it has. Based on the description, it looks like it can do something similar to skeema except it isn’t limited to one flavor of sql like skeema. I’m looking forward to trying it out in my next postgres project.
-
-
Project mention: Docker Compose: how to wait for the MySQL server container to be ready? | dev.to | 2022-11-29
Further Googling, I found this Docker document Control startup and shutdown order in Compose, whereby several tools are recommended to implement the waiting, among them are wait-for-it and Wait4X.
-
Project mention: Run and operate MariaDB in Kubernetes with mariadb-operator | /r/kubernetes | 2023-07-23
In this blog, we discuss the effective utilization of mariadb-operator to manage MariaDB instances in Kubernetes using CRDS, promoting a declarative approach instead of relying on imperative commands.
-
mysqlconfigurer
Releem is a simple MySQL tuning tool to improve database performance and reduce servers costs.
-
edgelessdb
EdgelessDB is a MySQL-compatible database for confidential computing. It runs entirely inside a secure enclave and comes with advanced features for collaboration, recovery, and access control.
-
Gosora
Gosora is an ultra-fast and secure forum software written in Go that balances usability with functionality.
-
dbbench
🏋️ dbbench is a simple database benchmarking tool which supports several databases and own scripts
-
Simple CRUD App w/ Gorilla/Mux, MariaDB
Simple CRUD Application with Go, Gorilla/mux, MariaDB, Redis.
-
-
slowql
A package to parse slow query logs in Go, with associated tooling (digester, replayer...), and compatible with multiple databases (MySQL, MariaDB, PerconaDB...).
-
-
-
sql-export
Export SQL tables or queries to files in JSON or Markdown / YAML format. Mainly to use with static site generators like Hugo to generate content from database
sql-export export database data into all-in-one JSON file or into many files (one file per SQL result row) in JSON, Markdown with YAML frontmatter or custom format (using text/template, same syntax as you use is HTML layouts in Hugo)
-
Mergify
Updating dependencies is time-consuming.. Solutions like Dependabot or Renovate update but don't merge dependencies. You need to do it manually while it could be fully automated! Add a Merge Queue to your workflow and stop caring about PR management & merging. Try Mergify for free.
Go MariaDB related posts
- Managing external database versions in Kubernetes
- Make Deno MySQL driver works better
- Are entity framework tools typically avoided with MySQL & Go and are there alternatives for migration script tooling that version control the entire schema like SSDT?
- Inserting One Billion Rows in SQLite Under a Minute
Index
What are some of the best open-source MariaDB projects in Go? This list will help you:
Project | Stars | |
---|---|---|
1 | go-sql-driver/mysql | 13,673 |
2 | migrate | 12,238 |
3 | usql | 8,227 |
4 | wal-g | 2,704 |
5 | tbls | 2,600 |
6 | ddev | 2,020 |
7 | prisma-client-go | 1,638 |
8 | jet | 1,543 |
9 | gnomock | 1,230 |
10 | skeema | 1,171 |
11 | local-docker-db | 276 |
12 | Wait4X | 221 |
13 | mariadb-operator | 207 |
14 | mysqlconfigurer | 206 |
15 | edgelessdb | 163 |
16 | Gosora | 163 |
17 | dbbench | 88 |
18 | Simple CRUD App w/ Gorilla/Mux, MariaDB | 73 |
19 | mysql_udf_http_golang | 38 |
20 | slowql | 28 |
21 | godfish | 5 |
22 | brimming | 5 |
23 | sql-export | 0 |