Skip to main content

What is VillageSQL Server?

VillageSQL is the innovation platform for MySQL and a new path for MySQL in the agentic AI era. VillageSQL Server for MySQL is an open-source, drop-in replacement, and extensible tracking fork of MySQL. It introduces a robust extension framework that supports custom data types and custom functions (with custom indexes coming soon). VillageSQL’s mission is to empower the MySQL community by enabling permissionless innovation.

Getting Started

Quickstart

Install VillageSQL and get your first database running.

VillageSQL on GitHub

View the source code and contribute to the project.

Extensions for MySQL

VillageSQL is a drop-in replacement for MySQL but adds on the ability to load extensions that modify the server’s behavior. Extensions support:
  • Custom Data Types: Extensions can define new types (e.g., UUID, COMPLEX, INET6) that behave like native types.
  • Custom Functions: Add high-performance C++ functions callable from SQL.
  • Seamless Integration: Extensions are managed via simple SQL commands (INSTALL EXTENSION, UNINSTALL EXTENSION).

Built-in Extensions

VillageSQL Server 0.0.2 includes two built-in extensions when building from source:
  • vsql_complex: adds support for complex number data type
  • vsql_simple: demonstrates building custom types and functions
Additional extensions are available in separate repositories:
  • vsql_uuid: UUID generation, validation, conversion, and comparison
  • vsql_ai: AI prompting via SQL functions
  • vsql_crypto: Cryptographic functions (hashing, encryption, random data generation)
  • vsql_network_address: IPv4, IPv6, and MAC address types

Build an Extension

You can build your own extension using this template.

Why VillageSQL?

Drop-in Compatibility

Fully compatible with the MySQL protocol, clients, and drivers. If it works with MySQL, it works with VillageSQL.

Extensible Core

Dynamically load new features via extensions using INSTALL EXTENSION.

Open Ecosystem

Community-driven development with a focus on enabling innovation through extensions.

Familiar Tooling

Use standard MySQL tools (mysqld, mysql client) and configurations.

Community

It takes a village. Build an extension.

Latest News

Catch up with the latest news on the blog.

Discord

Chat with the community on Discord.

Issues

Report bugs or request new features.

Discussions

Join the discussion on GitHub Discussions.