MySQL2
Fast, pure-JavaScript MySQL client for Node.js with prepared statements, promises, and pooling.
Repository Health
Technical Analysis
MySQL2 is a high-performance MySQL client for Node.js written entirely in JavaScript, with no native bindings to compile or install. It is a continuation of MySQL-Native with a protocol parser rewritten from scratch, and it is largely API-compatible with the popular mysqljs/mysql driver while adding faster performance and a broader feature set.
Beyond basic querying, MySQL2 supports server-side prepared statements, a promise-based API, connection pooling and pool clusters, SSL/TLS, protocol compression, extended encoding and collation handling, the MySQL binary log protocol, and even acting as a MySQL server. It powers a large share of the Node.js ecosystem and is the underlying driver for many ORMs and query builders.
What You Get
- A pure-JavaScript MySQL/MariaDB driver that installs without native compilation
- Both callback and promise-based APIs, plus connection pooling and pool clusters
- Server-side prepared statements for safer, faster repeated queries
- SSL/TLS, protocol compression, authentication switch, and AWS SSL profiles
- Extended encoding/collation support and the MySQL binary log protocol
- Near drop-in compatibility with the mysqljs/mysql API
Common Use Cases
- Backing web and API servers that read from and write to MySQL or MariaDB
- Serving as the low-level driver under ORMs and query builders such as Sequelize, Drizzle, and Knex
- Running high-throughput workloads that benefit from prepared statements and pooling
- Connecting securely to managed databases (e.g. Amazon RDS/Aurora) over SSL
Under The Hood
Architecture — MySQL2’s entry point (index.js) wires up factory functions (createConnection, createPool, createPoolCluster, createServer) over a core Connection class in lib/connection.js. Each connection owns a PacketParser (lib/packet_parser.js) that incrementally reads bytes off the socket and dispatches complete MySQL protocol packets to a queue of command objects in lib/commands/ (handshake, query, execute, prepare, ping, change_user, binlog_dump, etc.), each modeled as a small state machine extending command.js. Packet encode/decode lives in lib/packets/, result parsing and caching in lib/parsers/, and pooling logic in lib/pool.js / lib/pool_cluster.js, with a parallel promise API layer in lib/promise/ and promise.js.
Tech Stack — The library is authored in JavaScript (with TypeScript typings under typings/) targeting Node.js >= 8 and CommonJS. Runtime dependencies are deliberately small and pure-JS: denque for fast queues, iconv-lite for encodings, long for 64-bit integers, lru.min for statement/parser caches, named-placeholders and sql-escaper for query building/escaping, generate-function for compiled parsers, and aws-ssl-profiles for managed-DB TLS. Build/test tooling includes Rollup, ESLint, Prettier, TypeScript, the Poku test runner, and c8 for coverage.
Code Quality — The project is mature and well-tested, with test/unit and test/integration suites plus Dockerized runs against real MySQL, a test/tsc-build typecheck harness, and CI with Codecov coverage reporting. Cross-runtime tests target Node.js, Bun, and Deno. Code is linted and Prettier-formatted, and the codebase is organized into clearly separated protocol, command, packet, and pooling modules.
API Design — The public API mirrors the widely-known mysqljs/mysql surface, easing migration, and layers a clean promise wrapper on top (require('mysql2/promise')). Common tasks — a first query, prepared statements via execute, and connection pools — require little boilerplate, and extensive multi-language documentation, examples, and an FAQ back up the ergonomics.
Used by 41 apps in this directory
FastGPT
AI Agents · AI Development
Build, debug, and deploy knowledge-based AI agents with a visual workflow editor, RAG retrieval, and support for any OpenAI-compatible LLM.
Flowise
AI Development · Automation · Developer Tools
Drag-and-drop visual builder for AI agents, RAG pipelines, and multi-agent systems—deploy anywhere in minutes.
flue
AI Agents · Developer Tools
Build autonomous AI agents and powerful workflows with a programmable TypeScript harness that gives any model sessions, tools, sandboxes, and durable execution.
Ghost
Blogging · CMS
Open source headless Node.js CMS for professional publishing, paid memberships, and newsletters with a fully owned audience.
GrowthBook
Ab Testing Experimentation · Analytics · Developer Tools
Open source feature flags, A/B testing, and warehouse-native experimentation that queries your existing data infrastructure—no data movement required.
Infisical
Devops · Security
The open-source platform for secrets, certificates, privileged access, and AI agent security — all in one self-hostable system.
Kener
Devops · Monitoring
Stunning, self-hosted status pages with real-time uptime monitoring, incident management, and multi-channel notifications in a single Docker container.
ktx
AI Development · Analytics · Data Engineering
ktx builds a self-improving context layer over your data warehouse so AI agents like Claude Code and Codex query it with approved metric definitions instead of reinventing SQL logic from scratch.
Kutt
Analytics · Marketing
Self-hosted URL shortener with custom domains, per-link analytics, and zero build step required.