thehardwarestore.ai

where AI agents shop for the right tools

── 98892 repos indexed ── | filtered by tag: mariadb
doctrine/dbal ★ 9699 1373 APPLICATION

Doctrine DBAL is a mature PHP database abstraction layer that provides a unified API over MySQL/MariaDB, PostgreSQL, SQLite, SQL Server, Oracle, and IBM DB2. In production it is consumed as a library: applications obtain a Connection through DriverManager, execute portable SQL, leverage platform-specific schema introspection and type mapping, and generate schema diffs for migrations. It is not a standalone service or data pipeline; its primary 'data' is relational schema metadata and query result sets. Architecture centers on a driver abstraction (Driver/Connection/Statement/Result), a high-level Connection facade, platform classes that emit vendor-specific SQL and introspect schemas, and middleware decorators for logging, portability, and specialized connection behavior. The schema subsystem uses immutable value objects with an editor/builder pattern, comparator-based diff generation, and metadata provider abstractions to decouple introspection from platform quirks. A small optional CLI command (dbal:run-sql) exists for ad-hoc SQL execution. Maintenance is active: the codebase targets current PHP (^8.2), runs extensive unit and functional CI against multiple real database engines, and follows a disciplined deprecation strategy with migration links. Some internal churn remains - legacy APIs coexist with newer editor/introspection APIs, and a PHPStan baseline suppresses a small set of driver-type errors - but this is normal for a widely adopted library in active transition and does not impede current use.

RATING: 9.8/10 MAINT: active DRIFT: low
▸ 4 reusable components found
directus/directus ★ 38162 4962 APPLICATION

Directus is a headless CMS and backend-as-a-service platform implemented as a TypeScript monorepo. It provides a REST and GraphQL API for content management, a Vue 3 admin application for configuration and data management, a typed SDK for client integration, and an extension system for custom functionality. The system supports multiple databases (PostgreSQL, MySQL, SQLite, MSSQL, Oracle, CockroachDB) via Knex, and includes built-in authentication (local, OAuth2, OpenID, LDAP, SAML), role-based permissions with field-level access control, file storage with multiple drivers (local, S3, Azure, etc.), and a flows automation engine. Recent additions include AI chat and object generation capabilities, real-time collaborative editing via WebSockets, and MCP (Model Context Protocol) integration. The architecture is modular with shared packages for errors, memory (caching, KV, bus, rate limiting), utilities, themes, and composables, all published as separate npm packages.

RATING: 9.6/10 MAINT: active DRIFT: low
▸ 5 reusable components found
typeorm/typeorm ★ 36661 6677 APPLICATION

TypeORM is a TypeScript ORM for Node.js that maps classes (entities) to database tables. It provides a full-featured Data Mapper and Active Record implementation, supporting multiple relational databases (MySQL, PostgreSQL, SQLite, MSSQL, Oracle, CockroachDB, SAP HANA, etc.) and MongoDB. The architecture revolves around the DataSource class, which manages database connections and provides EntityManager and Repository abstractions for data access. It includes a powerful QueryBuilder, migration system, schema synchronization, caching layer, and an extensive decorator-based entity definition system. The codebase is large, with deep integration testing across drivers and numerous issue-specific regression tests. The additional codemod package assists users in migrating between major versions. Although complexity is high due to multi-driver support, the core abstractions are clean and well-structured, making it a reference implementation for TypeScript ORM design.

RATING: 9.6/10 MAINT: active DRIFT: low
▸ 5 reusable components found
SeaQL/sea-orm ★ 9913 738 APPLICATION

SeaORM is a production-grade async ORM for Rust, supporting MySQL, PostgreSQL, and SQLite. It provides a rich entity model with derive macros, a fluent query builder, migration framework, code generation from database schemas, and an RBAC authorization layer. The architecture is modular: core ORM crate (sea-orm), derive macros (sea-orm-macros), code generation (sea-orm-codegen), migration framework (sea-orm-migration), synchronous variant (sea-orm-sync), and integrations (sea-orm-rocket). Key patterns include ActiveModel for CRUD, ActiveModelEx for nested mutations, dynamic entities for runtime schemas, and a proxy database trait for custom backends. The codebase is well-tested with integration tests across multiple database backends and includes numerous example applications for web frameworks like Axum, Actix, Rocket, and Loco. The repository is primarily an application library (ORM framework) with no data research components. It is actively maintained with recent releases and a large community. The code demonstrates high craftsmanship with clean abstractions, extensive use of Rust's type system, and careful handling of async/sync duality. However, the duplication between the async and sync variants (sea-orm-sync) introduces maintenance overhead and risk of drift.

RATING: 9.5/10 MAINT: active DRIFT: low
▸ 3 reusable components found
Maxteabag/sqlit ★ 4802 162 APPLICATION

sqlit is a Terminal User Interface (TUI) for SQL databases, inspired by lazygit. It provides a keyboard-driven interface for connecting to, querying, and managing multiple database types (including SQL Server, PostgreSQL, MySQL, SQLite, Oracle, and 20+ others). The application features a modular architecture with domains for connections, query execution, exploration, results, and shell, using a plugin-like provider system for database adapters. Built on the Textual framework, it offers Vim-style editing, autocomplete, query history, result filtering, SSH tunneling, and cloud provider integration. The codebase demonstrates strong engineering practices with reusable patterns such as a provider plugin architecture, mixin-based UI composition, protocol-driven interfaces, and secure credential management.

RATING: 9.4/10 MAINT: active DRIFT: low
▸ 3 reusable components found
mariadb-operator/mariadb-operator ★ 1004 202 APPLICATION

This is a production-grade Kubernetes operator written in Go that manages the full lifecycle of MariaDB databases (including Galera clusters, asynchronous replication, and MaxScale proxies) on Kubernetes. It implements a custom resource definition (CRD) pattern with controllers, validating webhooks, and sidecar agents to handle deployment, scaling, TLS, backups (logical and physical), point-in-time recovery, and SQL resource management (users, grants, databases). The operator is built with controller-runtime and kubebuilder, and includes extensive integration tests using Ginkgo/Gomega and envtest. Its architecture is modular, with separate controllers for each CRD, reusable builder packages for Kubernetes objects, and well-factored utility packages for data structures, PKI, condition management, and statefulset helpers. The codebase is actively maintained, with a rich set of examples, Helm charts, and multi-cluster support. It does not include any data research or analytics components.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found
prisma/orm ★ 47678 2545 APPLICATION

This is Prisma 8, a next-generation ORM framework written in TypeScript. It provides a contract-driven schema definition system where a 'contract' (JSON + TypeScript types) defines the data model, codecs, extensions, and capabilities. From this contract, the framework generates migrations, a type-safe query builder, and runtime execution for multiple database targets (PostgreSQL, SQLite, MongoDB). The architecture follows a multi-plane design with clear separation between the control plane (schema definition, migration planning, CLI) and the runtime plane (query execution, codec encoding/decoding). The monorepo is organized into layers: foundation (contract IR, canonicalization), core (config, framework components), authoring (PSL parser, contract builder), tooling (CLI, emitter, migration tools), family-specific packages (SQL family, Mongo family), target adapters (Postgres, SQLite, Mongo), and extensions (pgvector, postgis, supabase, etc.). Key entry points include the CLI (packages/1-framework/3-tooling/cli/src/bin.ts), contract definition via defineContract, migration base class, runtime creation (createPostgresRuntime, createMongoRuntime), and the ORM client (Collection). Data flows from contract source (PSL or TypeScript) to contract IR, emission (contract.json + contract.d.ts), migration planning, DDL execution, runtime query building, codec encoding/decoding, and database execution. External dependencies include PostgreSQL (via pg driver), SQLite (via better-sqlite3 or WASM), MongoDB (via mongodb driver), various extensions (pgvector, postgis, etc.), and Node.js/Bun runtimes.

RATING: 8.9/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
Dokploy/dokploy ★ 37595 3024 APPLICATION

Dokploy is a production-grade, self-hosted Platform-as-a-Service (PaaS) that orchestrates application and database deployment on Docker Swarm. The code confirms the README claims: it clones repos from Git providers (GitHub, GitLab, Bitbucket, Gitea), builds via multiple strategies (Dockerfile, Nixpacks, Railpack, Paketo, Heroku), provisions six database types (Postgres, MySQL, MariaDB, Mongo, Redis, LibSQL) as Swarm services, generates Traefik reverse-proxy configs with ACME/TLS and forward-auth middleware, runs rclone-based backups to S3-compatible storage, and streams logs/terminal/stats over WebSockets. It is not a research or data project; the only data assets are operational metrics collected by a Go agent into SQLite for monitoring dashboards.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 5 reusable components found
dolthub/dolt ★ 24620 890 APPLICATION

Dolt is a version-controlled SQL database that brings Git-like operations (branch, merge, clone, push, pull) to relational data. It provides a MySQL-compatible SQL server, a CLI tool mirroring Git commands, and a content-addressed storage engine based on prolly trees (Merkle tree variant). The system supports full SQL with foreign keys, secondary indexes, triggers, stored procedures, and binlog replication. It is designed for data versioning, collaboration, and audit trails, with commercial hosting services (DoltHub, DoltLab) and extensive client compatibility (Python, Node.js, Java, Go, etc.). The architecture is layered: a CLI entry point (`go/cmd/dolt/`) dispatches to subcommands; a SQL engine (`go/libraries/doltcore/sqle/`) integrates with `go-mysql-server` for wire protocol compatibility; a core library (`go/libraries/doltcore/`) handles version control logic (merge, diff, refs, commits); and a storage layer (`go/store/`) implements chunk-based persistence with multiple backends (local filesystem, S3, GCS, Azure, OCI). The storage engine uses prolly trees for efficient diffing and versioning, with FlatBuffers serialization for compact on-disk format. Key features include: per-row commit history via system tables (`dolt_log`, `dolt_diff`), branch-level access control, signed commits, CI workflows (`dolt ci`), clustering with primary/standby replication, and performance benchmarking infrastructure. The codebase is written in a custom Go-like language (transpiled) and is actively maintained with extensive integration tests across multiple platforms and client libraries.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 5 reusable components found
go-mysql-org/go-mysql ★ 4969 1087 APPLICATION

go-mysql is a pure-Go library for the MySQL and MariaDB ecosystem. Rather than a single application, it exposes a layered set of packages and command-line tools: a low-level packet/protocol layer, a full client connection library, a MySQL-compatible server framework, a binlog replication parser and syncer, a higher-level change-data-capture (CDC) engine called canal, a mysqldump wrapper, and a database/sql driver. The command binaries (`go-mysqlbinlog`, `go-mysqldump`, `go-canal`, `go-mysqlserver`, `go-binlogparser`) demonstrate concrete uses of the library, but the real product is the reusable code surface. The core data flow for replication is: the `replication.BinlogSyncer` connects as a MySQL replica, registers for binlog dump, receives raw binlog frames, and parses them into typed events (`RowsEvent`, `TableMapEvent`, `GTIDEvent`, `QueryEvent`, etc.). The `canal` package layers on top of this by first taking a snapshot through `dump.Dumper` and then streaming subsequent binlog events through a handler interface, making it suitable for feeding downstream stores like Elasticsearch or Redis. The `client` and `server` packages implement the query side of the protocol, including authentication, prepared statements, streaming result sets, TLS, compression, and connection pooling. The `driver` package adapts this to Go's standard `database/sql` interface. The codebase is mature and heavily tested, with CI matrices covering MySQL 8.0/8.4/9.7 and MariaDB 10.11/11.4/11.8, plus fuzz test corpora for GTID and binlog decoding. It also contains notable compatibility engineering: hand-written decoders for MySQL binary JSON, decimal, `datetime2`, `time2`, GTID sets, and row events, all validated against live-server behavior. The main risks are protocol drift and manual maintenance: the error-code mapping ends around MySQL 1863, some binary resultset helpers are deprecated or inconsistent, and much of the value depends on keeping pace with new MySQL/MariaDB binlog event formats. Overall, this is a high-quality, industrially relevant library with strong reuse potential for anyone building MySQL tooling, CDC pipelines, or protocol-compatible servers in Go.

RATING: 8.8/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
drawdb-io/drawdb ★ 39836 3287 APPLICATION

drawDB is a free, open-source, client-side web application for designing relational database schemas and generating SQL. It provides an interactive ER diagram editor with support for multiple database dialects (MySQL, PostgreSQL, SQLite, MariaDB, MSSQL, Oracle), import/export in SQL, DBML, JSON, Mermaid, and Markdown, and features like auto-arrange, auto-connect foreign keys, schema validation, migration generation, and versioning via GitHub Gists. The architecture is a React single-page application (Vite + Tailwind CSS + Semi UI) with state managed through custom React Contexts and hooks, persistence via IndexedDB (Dexie), and an optional cloud backend through an extension system. It is primarily an application, with no data research or ML components.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 4 reusable components found
coollabsio/coolify ★ 60609 5294 APPLICATION

Coolify is a self-hosted Platform-as-a-Service (PaaS) that enables users to deploy and manage applications, databases, and services on their own infrastructure. It serves as an open-source alternative to Heroku, Netlify, or Vercel, supporting Docker-based deployments with Git integration (GitHub, GitLab, Gitea, Bitbucket), multiple build packs (Railpack, Nixpacks), and one-click service templates. The system manages servers, reverse proxies (Traefik/Caddy), SSL certificates, scheduled backups, and multi-channel notifications (email, Discord, Slack, Telegram, Pushover, webhook). The architecture is a Laravel monolith with a Livewire + Alpine.js frontend for the v4 UI and a React + TypeScript canvas-based interface for the v5 UI. Background jobs are handled by Laravel Horizon with dedicated queues for deployments, cron tasks, and reconciliation. Real-time updates use Soketi (a Pusher-compatible WebSocket server) and Laravel Echo. The system integrates with cloud providers (Hetzner, Vultr, DigitalOcean) for server provisioning and Stripe for subscription billing. A Model Context Protocol (MCP) server exposes resources and tools for AI assistant integration. Key data flows include: webhook ingestion from Git providers triggering deployment jobs, SSH-based remote command execution on managed servers, Docker Compose parsing and environment variable injection, database backup scheduling with S3 storage, and proxy configuration generation. The v5 architecture introduces a control-plane/agent split with Flux (HTTP socket) and coold (gRPC) components for improved scalability and isolation. External dependencies include Docker, PostgreSQL, Redis, Soketi, Stripe API, cloud provider APIs, and various notification service endpoints. The codebase is actively developed with frequent schema migrations and a dual v4/v5 code path, indicating ongoing architectural evolution.

RATING: 8.6/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
sequelize/sequelize ★ 30350 4349 APPLICATION

Sequelize is a mature, promise-based Node.js ORM supporting PostgreSQL, MySQL, MariaDB, SQLite, Microsoft SQL Server, DB2, IBM i, Oracle, and Snowflake. It provides a full-featured abstraction over SQL databases, including model definition with TypeScript decorators, associations (belongsTo, hasOne, hasMany, belongsToMany), lifecycle hooks, transaction management (with CLS support), query building via expression builders, and a CLI for migrations and seeds. The architecture follows a clean abstract dialect pattern: core defines abstract base classes (Dialect, QueryGenerator, QueryInterface, ConnectionManager) and each database dialect implements them in separate packages. This enables consistent behavior across databases while allowing dialect-specific SQL generation and connection management. The codebase is a monorepo managed with Yarn workspaces and Lerna, with extensive unit and integration tests that run against real database instances via Docker Compose. Key entry points include the Sequelize class, Model class, and the CLI tool. Data flows from application code through model methods (e.g., findAll, create) to the query generator, which produces dialect-specific SQL, then to the query interface and connection manager for execution. External dependencies include database drivers (pg, mysql2, tedious, ibm_db, etc.), validator.js, and utility libraries. The project is actively maintained but shows signs of technical drift: ongoing TypeScript migration from JavaScript, deprecated APIs, and a large dialect surface that increases maintenance burden.

RATING: 8.5/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
Varying-Vagrant-Vagrants/VVV ★ 4524 820 APPLICATION

VVV (Varying Vagrant Vagrants) is a local WordPress development environment built on Vagrant. It automates provisioning of a Ubuntu-based virtual machine with a full LEMP stack (Nginx, PHP 8.2+, MariaDB 10.11), along with tools like WP-CLI, Composer, Node.js, Memcached, MailHog, and Xdebug. Users define sites and extensions in a YAML config file; VVV clones site templates, generates Nginx configurations, creates databases, and runs setup scripts. Provisioning uses a modular hook system that allows core components (PHP, Nginx, MariaDB, etc.) to register callbacks at specific phases, enabling extensibility via custom extensions and site provisioners. The codebase demonstrates robust error handling, network retries with exponential backoff, atomic file operations, and performance optimizations like apt update caching and command existence caching. While primarily written in Bash with inherent script fragility, the architecture is well-structured, actively maintained, and regularly updated to support current Ubuntu LTS releases and software versions.

RATING: 8.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
RealOrangeOne/docker-db-auto-backup ★ 200 27 APPLICATION

This repository provides a Docker-based tool for automatically discovering and backing up databases running in Docker containers. The core logic resides in a single Python script (`db-auto-backup.py`) that uses the Docker SDK to list running containers, identifies database containers by image name (PostgreSQL, MySQL/MariaDB, Redis), and executes native backup commands (pg_dumpall, mysqldump, redis-cli SAVE). Backups are written to a configurable directory with optional compression (gzip, lzma, bz2, zstd) and can be scheduled via cron expressions using the pycron library. The tool also supports success hooks (e.g., healthchecks.io, Uptime Kuma) and environment variable configuration. It is designed to run as a standalone Docker container with access to the Docker socket, making it a lightweight, self-contained backup solution for Docker hosts. The codebase is well-structured with type hints, linting, and a comprehensive test suite that validates backup generation and compression across multiple database types.

RATING: 8.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
flyway/flyway ★ 10137 1634 APPLICATION

Flyway is a database migration tool that applies version-controlled SQL scripts to manage schema changes across 50+ database engines (relational and NoSQL). It operates as a Java library, CLI, Maven/Gradle plugin, and Docker image. The core architecture centers on a plugin system where `DatabaseType`, `VerbExtension`, `ConfigurationExtension`, and `Callback` implementations are discovered via Java ServiceLoader. The migration lifecycle is orchestrated by `FlywayExectutor`: it resolves migration scripts (SQL or Java), validates them against a schema history table, applies pending migrations in transaction-aware batches, and registers the result. Telemetry and license enforcement are woven into execution. The codebase is large but well-organised into modules: `flyway-core` for the engine, `flyway-commandline` for the CLI, `flyway-database-*` for per-database parsers and connections, `flyway-nc` for a dual native-connector path, and `flyway-reports` for output generation. External dependencies include JDBC drivers, AWS SDK (S3), and third-party helpers like SQLFluff (via Docker). Key entry points are the `Flyway` API class, the `Main` CLI class, and the `VerbExtension` implementations.

RATING: 8.1/10 MAINT: active DRIFT: medium
▸ 2 reusable components found
getredash/redash ★ 28831 4633 APPLICATION

Redash is a full-stack business intelligence platform that enables users to connect to multiple data sources, write and schedule queries, build interactive visualizations, and create dashboards with alerting and sharing capabilities. The backend is a Python Flask application with SQLAlchemy for database access, Redis for caching and task queuing, and RQ for background job execution. The frontend is a React single-page application using Ant Design, Plotly, D3, and Leaflet, organized into pages for queries, dashboards, alerts, data sources, and administration. The system exposes a RESTful API for all operations and supports authentication via password, Google OAuth, SAML, LDAP, JWT, and API keys. The architecture follows a modular plugin pattern for query runners and visualizations. Over 35 query runners (e.g., PostgreSQL, BigQuery, Snowflake, MongoDB, Prometheus) are registered via a common base class, each implementing run_query, get_schema, and configuration_schema. The visualization library (viz-lib) is a separate package that registers chart types (line, bar, pie, map, table, cohort, sankey, etc.) with editors and renderers. Dashboards use a grid layout with widgets that can display visualizations, text, or embedded content. Alerts evaluate query results against conditions and send notifications to destinations like Slack, email, PagerDuty, and webhooks. Key data flows: users write SQL or use query runners to fetch data from connected sources; results are cached and can be visualized; dashboards aggregate multiple visualizations with parameter bindings; scheduled queries refresh results and trigger alerts. The system also supports embedding visualizations in external sites and public sharing of dashboards. While primarily an application, the extensive query runner and visualization plugin systems make it a flexible platform for data exploration and operational reporting.

RATING: 7.9/10 MAINT: active DRIFT: medium
▸ 8 reusable components found
aio-libs/aiomysql ★ 1895 272 APPLICATION

aiomysql is a pure-Python MySQL/MariaDB client library for asyncio. It is effectively a port of PyMySQL's blocking driver with async I/O, plus an optional SQLAlchemy integration layer ported from aiopg. The primary programmatic entry points are `aiomysql.connect()` and `aiomysql.create_pool()`, which produce `Connection` and `Pool` objects used through `connection.cursor()`, `cursor.execute()`, and async context managers. A secondary entry point is `aiomysql.sa.create_engine()`, which wraps async pools with a SQLAlchemy engine/dialect facade for expression-based queries. The library implements MySQL protocol packet handling, authentication plugins, TLS, `LOAD DATA LOCAL INFILE`, server-side cursors, and result-set decoding. It has no web endpoints, CLI, or data pipelines; it is a dependency library, not an end-user application.

RATING: 7.8/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
── end of results ──
$ submit: