Skip to content

Latest commit

 

History

History
338 lines (244 loc) · 31.5 KB

list-dev.md

File metadata and controls

338 lines (244 loc) · 31.5 KB

Awesome MariaDB for Developers

A curated list of awesome MariaDB resources, maintained by Vettabase and sponsored by the MariaDB Foundation.

Awesome Inspired by the awesome-* trend on GitHub.

This list is intended for Developers. There are lists intended for other audiences. See README.md.

Contents

See the key for explanations of the terms used in this list.

Articles

The following resources are specific to MariaDB.

Tutorials

These tutorials show how to connect to MariaDB and perform some basic operations.

Loosely ordered by language, SQL first.

Project Language Level Format Notes
MariaDB on Rosetta Code Pure SQL ALL LEVELS Text
MariaDB Tutorial Pure SQL BEGINNER Text
Using MariaDB With ASP.NET Core Web API ASP.NET INTERMEDIATE Text
Query MariaDB Data in ColdFusion ColdFusion BEGINNER Text
Creating an MVC application using NODEjs and MariaDB NodeJS INTERMEDIATE Text
NodeJS MariaDB Integration: 3 Easy Steps NodeJS INTERMEDIATE Text
Getting Started with MariaDB using Docker and Node.js NodeJS INTERMEDIATE Text
MariaDB for Beginners SQL, Java BEGINNER Video [1]
Using MariaDB databases with Lazarus/Free Pascal Pascal BEGINNER Text
MariaDB Tutorial SQL, PHP BEGINNER Text [2]
How To Store and Retrieve Data in MariaDB Using Python Python BEGINNER / INTERMEDIATE Text
Connect to MariaDB Data in Ruby Ruby BEGINNER Text
Three simple rules to not fail (too much) your data design N/A BEGINNER / INTERMEDIATE Text [3]

Notes

  1. The Java part only shows how to connect to MariaDB with a JDBC driver.
  2. The PHP part might be obsolete, because it still uses the old mysql non-OOP extension. However, editing the snippets to use mysqli or other libraries should be easy.
  3. Fully data design oriented

Language-specific articles

These articles are about language best practices, specific libraries, or non-trivial operations.

Go

Java

Node.js

Perl

PHP

Python

Scala

Plain SQL articles

These articles are about MariaDB SQL dialect, regardless which language you use to develop applications.

Connectors (Drivers)

The connectors are grouped by language.

Platform / Language ORM Name MariaDB Support Notes
C Connector/C YES
C mariadb++ YES
C++ MariaDB Connector/C++ YES
C++, Delphi Universal Data Access YES
Erlang MySQL/OTP MySQL
Fortran MariaDB Connector Fortran YES
Go Go-MySQL-Driver YES
Java Connector/J YES Type 4 JDBC driver
Java Connector/R2DBC YES Non-blocking API
JRuby jdbc-mariadb YES JDBC driver for JRuby.
Julia MySQL.jl YES Built on MariaDB C/Connector
Lisp Allegro MySQL Direct Connect Library NOT VERIFIED
.NET Connector/NET MySQL
.NET dotConnect for MySQL MySQL
Node.js Connector/Node.js YES
OCaml OCaml-MariaDB YES [1]
ODBC Connector/ODBC YES
Perl DBD::MariaDB YES
PHP MySQLi MySQL Both procedural and OO API.
PHP PDO MySQL MySQL Multi-database abstraction layer.
Python Connector/Python YES
Python PyMySQL PARTIAL Pure Python driver, MariaDB >= 10.4
Python mysqlclient YES
R RMariaDB YES
Raku (Perl 6) DBIish YES
Ruby mysql Ruby gem MySQL [2]
Ruby tencentcloud-sdk-mariadb YES [2]
Swift Perfect MariaDB Connector YES
Zig myzql NOT VERIFIED [3]

Notes

  1. Uses Connector/C via CTypes. From the README file: "Only the prepared-statement APIs are exposed by OCaml-MariaDB, as these functions provide typed query parameters and database field access".
  2. tencentcloud-sdk-mariadb is actively maintained by Tencent. The mysql gem is by far the most used, but it's unmaintained since 2021. jdbc-mariadb is also unmaintained since 2019.
  3. Pre-production maturity level.

IDEs

Guides on how to work with MariaDB using various IDEs.

IDE Project Format Notes
Eclipse Accessing Maria DB from within Eclipse Video
Embarcadero New in 10.2: MariaDB Support Text
IntelliJ IDEA IntelliJ IDEA - MariaDB Text
RubyMine RubyMine MariaDB plugin documentation Text
Visual Studio How to: Create A Model Based on MariaDB Database Text

Migrations

Misc Libraries

Libraries that can't be classified as connectors or ORMs.

  • MariaDB4j - a Java launcher to run MariaDB without installation or external dependencies.
  • SQLGlot - Libraries to parse SQL in various dialects. Supports MySQL with very minor divergencies from MariaDB.

NoSQL and Key Value Storage

Links to articles and information on the various methods and utilities to read and write unstructure or NoSQL data to MariaDB.

ORMs and other abstraction layers

Language ORM Name License MariaDB Support Notes
Go GORM MIT NOT VERIFIED [1]
Python Django-MySQL MIT YES
Java Hibernate LGPL 2.1 / Apache 2 YES [2]
Java EclipseLink Open Source YES [2]
Java OpenJPA Apache 2 YES [2]
Java jOOQ Apache 2 / Proprietary YES
Java MyBatis Apache 2 YES
JavaScript TypeORM MIT NOT VERIFIED [2]
Python SQLAlchemy MIT YES
Ruby mariadb_temporal_tables MIT YES
Ruby on Rails Active Record MIT YES
Rust Diesel Apache 2 / MIT YES
SQLx SQLx Apache 2 / MIT YES [3]

Notes

  1. Official MariaDB support is not mentioned on the website, but projects and materials, including the documentation, seem to use MariaDB successfully. Feedback would be welcomed on how it behaves where MySQL and MariaDB syntax differ.
  2. No easy way to insert the IGNORE, USE or FORCE INDEX syntax into a query.
  3. SQLx is an SQL toolkit. But if you don't like to build SQL strings, you can take a look at the ORMs and query builders it supports.

@TODO Check the ORMs in this list.

Schema Versioning Tools

Project Name MariaDB Support License / Platform
ByteBase 10.7+ Open source, proprietary, cloud
Flyway 5.1, 10.11 Apache 2
Liquibase PARTIAL Proprietary or Apache 2
Skeema.io 10.1 Proprietary or Apache 2

User-Defined Functions

To our knowledge, all MySQL UDFs should work with MariaDB. For this reason we don't provide information about MariaDB compatibility.

Articles

Frameworks

Frameworks and libraries to ease UDFs developing.

Project License Language Notes
lib_mysqludf_skeleton C LGPL UDF skeleton project
sql-udf Open Source Rust Wrapper for developing UDFs in Rust

Libraries

Project License Language Notes
Levenshtein-MySQL-UDF LGPL 3 C Levenshtein and related functions.
libmyemail MIT C++ Function to send emails.
lib_mysqludf_stomp Apache 2 C UDF to send STOMP messages.
lib_mysqludf_ta Open Source C Library for technical analysis.
lib_mysqludf_xml LGPL 2.1 C XQL functions
mysql_udf_http_golang Open Source Go HTTP requests.

User Interfaces

GUIs

Project Name MariaDB Support Platforms Licence Notes
Beekeeper Studio NOT VERIFIED Linux, MacOS, Windows BOTH
DataGrip YES Linux, MacOS, Windows Proprietary
DBeaver NOT VERIFIED Linux, MacOS, Windows BOTH
DbVisualizer YES Native: Linux, Windows; JVM: Linux, MacOS, Windows BOTH
Harlequin MySQL Python Open Source
HeidiSQL YES Windows Open Source
LibreOffice Base NOT VERIFIED Linux, MacOS, Windows Open Source [1]
ocelotgui YES Linux Open Source
OpenOffice Base MySQL Linux, MacOS, Windows Open Source [2]
Sequel Pro PARTIAL MacOS Open Source [3]
Database Workbench NOT VERIFIED Windows Proprietary
dbForge Studio for MySQL NOT VERIFIED Windows Proprietary
dbForge Edge NOT VERIFIED Windows Proprietary
Navicat YES Linux, MacOS, Windows Proprietary
SQLPro Studio NOT VERIFIED MacOS, Windows, iOS Proprietary
SQLyog NOT VERIFIED Windows Proprietary
TablePlus NOT VERIFIED Linux, MacOS, Windows, iOS Proprietary
Toad Edge NOT VERIFIED MacOS, Windows, Jenkins plugin Proprietary
Valentina Studio NOT VERIFIED Linux, MacOS, Windows Proprietary

Notes

  1. LibreOffice Base is a generic data visualization frontend. To learn how to use it with MariaDB, see the MariaDB KB.
  2. Apache OpenOffice is the project from which LibreOffice was originally forked. LibreOffice became more popular over time, so consider LibreOffice Base as well. OpenOffice Base does not support MariaDB. However it supports MySQL and ODBC drivers, so in practice it should work with MariaDB for standard use cases.
  3. At the time of writing, MariaDB support is only mentioned in the README.md file. A quick search on GitHub shows that this support is currently limited to version identification, some permissions and a TODO note.

Web Interfaces

Project Name MariaDB Support Platforms License Notes
Adminer NOT VERIFIED PHP Apache2 or GPL2
Express Admin YES NodeJS MIT [1]
phpMyAdmin YES PHP GPL2
  1. Express Admin is a NodeJS tool for easy creation of administrative interfaces, data entry forms and data visualisation MariaDB and other databases.

TUIs

Project Name MariaDB Support Platforms License
mycli YES Python Open Source

Key

Meaning of the terms used in this list.

MariaDB Support

Some of the sections include resources that were created for MySQL, or for both MariaDB and MySQL. The extent of MariaDB support is not always optimal. For those resources, we indicate the MariaDB support level as follows:

  • YES: Specific support for MariaDB is indicated, or can be inferred from the documentation or the source code. "Supports MySQL/MariaDB" is not considered specific MariaDB support, because the author might assume that what works on MySQL will work on MariaDB equally well.
  • MySQL: Officially supports MySQL, but not MariaDB.
  • NOT VERIFIED: Officially supports MySQL and MariaDB but we do not know whether full support for MariaDB is implemented.
  • PARTIAL: We are aware of relevant bugs or missing features.

If you disagree about a project's MariaDB Support indication, please report a bug.

License

The license column might need a better name.

  • Cloud - Available as a cloud service.
  • Proprietary - Source is available, but software is not Open Source.
  • Open Source - The license is approved by OSI.
  • For software that uses a single, open source, well-known license we sometimes indicate the license name.

For non-cloud software, we ancourage you to verify the license where relevant. Indicating a specific license is usually a simplification, because an application could be distributed with multiple licenses, or it might include libraries that use different licenses.


Copyright 2024 Vettabase Ltd and contributors.

Awesome MariaDB list is licensed under CC BY-SA 4.0 license.