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.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.
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 fixes | Issue 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
.vebfiles, installed withINSTALL 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

