Go MariaDB

Open-source Go projects categorized as MariaDB

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)

    Project mention: Tools besides Go for a newbie | /r/golang | 2023-03-26

    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

  • migrate

    Database migrations. CLI and Golang library.

    Project mention: Python: Just Write SQL | news.ycombinator.com | 2023-08-14

    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.

  • usql

    Universal command-line interface for SQL databases

    Project mention: xo/usql: Universal command-line interface for SQL databases | /r/devel | 2023-06-08
  • wal-g

    Archival and Restoration for databases in the Cloud

  • tbls

    tbls is a CI-Friendly tool for document a database, written in Go.

    Project mention: tbls | /r/devopspro | 2023-02-19
  • ddev

    Docker-based local PHP+Node.js web development environments

    Project mention: Docker Acquires Mutagen | news.ycombinator.com | 2023-06-27

    I use it with ddev for local development.


  • prisma-client-go

    Prisma Client Go is an auto-generated and fully type-safe database client

    Project mention: Prisma laying off 28% staff | news.ycombinator.com | 2023-01-22

    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.

  • jet

    Type safe SQL builder with code generation and automatic query result data mapping

    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 💻

    Project mention: How to unit test your database interactions with Docker | /r/golang | 2023-03-24

    https://github.com/orlangure/gnomock does this pretty well, but I liked your solution too, it is neat.

  • skeema

    Declarative pure-SQL schema management for MySQL and MariaDB

    Project mention: Automagically generate migrations for GORM | /r/golang | 2023-06-29

    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.

  • local-docker-db

    A bunch o' Docker Compose files used to quickly spin up local databases.

  • Wait4X

    Wait4X allows you to wait for a port or a service to enter the requested state.

    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.

  • mariadb-operator

    🦭 Run and operate MariaDB in a cloud native way

    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.

    Project mention: Releem: Db Performance Tuning as a Service | news.ycombinator.com | 2023-08-18
  • 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.

  • mysql_udf_http_golang

    MySQL(or MariaDB) UDF(User-Defined Functions) Http Client Plugin.

  • slowql

    A package to parse slow query logs in Go, with associated tooling (digester, replayer...), and compatible with multiple databases (MySQL, MariaDB, PerconaDB...).

  • godfish

    a db migration manager

  • brimming

    Row Stuffing

  • 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

    Project mention: sql-export - create .md / .json files from database content | dev.to | 2022-11-25

    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.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-09-02.

Go MariaDB related posts


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
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.