Skip to main content

Documentation Index

Fetch the complete documentation index at: https://villagesql.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

VillageSQL is a tracking fork of MySQL and is a drop-in replacement. The MySQL plugin and component interfaces work with VillageSQL just like they do with MySQL. VillageSQL provides the VillageSQL Extension Framework (VEF). For adding new functionality — custom SQL functions, custom types, integrations, etc. — VEF extensions are the right model.

What Goes Where

If you’re building something new, build a VEF extension in your own repo. Plugins and components work, but VEF is the right model — see Why Extensions instead of Plugins and Components. Contributions that belong in the VillageSQL Server repo:
Improvements to VEF itself (new hook types, SDK capabilities)PR to the server repo
Server bug fixesIssue or PR in the server repo

Why Extensions instead of Plugins and Components

MySQL plugins and components will work in VillageSQL. VEF extensions get more:
  • Custom types — define new column types, which plugins and UDFs can’t do
  • Packaging — distributed as .veb files, installed with INSTALL EXTENSION
  • No restart required — extensions load and unload at runtime
  • Versioning — declared in the extension manifest, enforced by the server

Starting a New Extension

Clone or fork vsql-extension-template. It includes a working Hello World extension, the manifest format, and the full CMake build setup. Once you have a repo, Creating Extensions walks through the VEF SDK.

If VEF Doesn’t Support What You Need

VEF is still growing. If you need a hook or capability that isn’t there yet:
  • File an issue in the server repo describing what you need
  • Upvote an existing issue if the request is already there
  • Submit a PR adding the hook to VEF — framework improvements are welcome in the server repo