<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/crafting-an-extension-framework-for-mysql-a-talk-from-mysql-br-conf-2026-uybzv2wnq" -->

---
title: Crafting an Extension Framework for MySQL: a talk from...
description: A VillageSQL engineer's MySQL BR Conf 2026 talk covers the design of the VillageSQL Extension Framework (VEF). It opens with a silly example, a ROT13 data...
canonical: https://daily.dev/posts/crafting-an-extension-framework-for-mysql-a-talk-from-mysql-br-conf-2026-uybzv2wnq
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Crafting an Extension Framework for MySQL: a talk from MySQL BR Conf 2026 | daily.dev
og:description: A VillageSQL engineer's MySQL BR Conf 2026 talk covers the design of the VillageSQL Extension Framework (VEF). It opens with a silly example, a ROT13 data...
og:url: https://daily.dev/posts/crafting-an-extension-framework-for-mysql-a-talk-from-mysql-br-conf-2026-uybzv2wnq
og:image: https://api.daily.dev/og/posts/UyBzv2WNQ.png
og:image:alt: Crafting an Extension Framework for MySQL: a talk from MySQL BR Conf 2026
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Crafting an Extension Framework for MySQL: a talk from MySQL BR Conf 2026

**[Planet MySQL](https://daily.dev/sources/planet-mysql)** · 2 min read · 0 upvotes · 0 comments

## Summary

A VillageSQL engineer's MySQL BR Conf 2026 talk covers the design of the VillageSQL Extension Framework (VEF). It opens with a silly example, a ROT13 data type, to illustrate the framework's design choices. VEF-Defined Functions (VDFs) resemble MySQL's User-Defined Functions but aim to be easier and safer to write in C++. The talk also covers types that take parameters, by generalizing ROT13 into ROT(K), an 'escape path' design pattern for functions without tidy compile-time signatures, and what happened when VillageSQL's Claude Code skill ported PostgreSQL's hstore extension.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://villagesql.com/blog/mysql-br-conf-26>

## Questions this post answers

### How does VillageSQL's Extension Framework differ from standard MySQL User-Defined Functions?

VillageSQL's Extension Framework (VEF) uses VEF-Defined Functions (VDFs), which resemble MySQL's User-Defined Functions but are designed to be easier to write in C++ and harder to misuse. The framework also supports types that take parameters, such as vectors needing a length, and includes an 'escape path' pattern for functions lacking tidy, compile-time signatures like printf.

_Engineers evaluating MySQL extension tooling can track frameworks like this one on daily.dev._

### Can PostgreSQL extensions like hstore be ported to MySQL?

Yes, VillageSQL ported PostgreSQL's hstore extension to its MySQL-based Extension Framework using VillageSQL's Claude Code skill, demonstrating the practicality of cross-database extension porting. The talk at MySQL BR Conf 2026 covers what the port involved and its cost, though specific cost figures were not detailed beyond discussing the process.

_Developers weighing cross-database extension work can follow cases like this on daily.dev._

## Similar posts on daily.dev

- [VillageSQL Launches as an Extension-Focused MySQL Fork](https://daily.dev/posts/villagesql-launches-as-an-extension-focused-mysql-fork-wtp9aqfiz) · InfoQ · 0 upvotes · 0 comments
- [Announcing VillageSQL Server 0.0.7](https://daily.dev/posts/announcing-villagesql-server-0-0-7-lowol1ejh) · Planet MySQL · 0 upvotes · 0 comments
- [Using DuckDB inside MySQL](https://daily.dev/posts/using-duckdb-inside-mysql-9ccseeutn) · Planet MySQL · 0 upvotes · 0 comments
- [Things I want in a modern relational query language](https://daily.dev/posts/things-i-want-in-a-modern-relational-query-language-y0qgepv3u) · Lobsters · 1 upvotes · 0 comments
- [The revenge of SQL: How a 50-year-old language reinvents itself](https://daily.dev/posts/the-revenge-of-sql-how-a-50-year-old-language-reinvents-itself-ptgmonz65) · InfoWorld · 1 upvotes · 0 comments

---

Tags: [#open-source](https://daily.dev/tags/open-source), [#postgresql](https://daily.dev/tags/postgresql), [#c++](https://daily.dev/tags/c++), [#mysql](https://daily.dev/tags/mysql)

[View this post on daily.dev](https://daily.dev/posts/crafting-an-extension-framework-for-mysql-a-talk-from-mysql-br-conf-2026-uybzv2wnq)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Crafting an Extension Framework for MySQL: a talk from MySQL BR Conf 2026","url":"https://daily.dev/posts/crafting-an-extension-framework-for-mysql-a-talk-from-mysql-br-conf-2026-uybzv2wnq","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/crafting-an-extension-framework-for-mysql-a-talk-from-mysql-br-conf-2026-uybzv2wnq"},"datePublished":"2026-10-26T14:36:22.501Z","dateModified":"2026-10-26T14:36:47.385Z","description":"A VillageSQL engineer's MySQL BR Conf 2026 talk covers the design of the VillageSQL Extension Framework (VEF). It opens with a silly example, a ROT13 data...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/62262c85c891b2fd400ced3724b3def5?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/62262c85c891b2fd400ced3724b3def5?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Planet MySQL","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Planet MySQL","logo":"https://media.daily.dev/image/upload/s--UKAtmXTq--/f_auto,q_auto/v1780213421/logos/planet-mysql?_a=BAMAMiWQ0","url":"https://daily.dev/sources/planet-mysql"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/crafting-an-extension-framework-for-mysql-a-talk-from-mysql-br-conf-2026-uybzv2wnq","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"open-source,postgresql,c++,mysql","timeRequired":"PT2M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Planet MySQL","item":"https://daily.dev/sources/planet-mysql"},{"@type":"ListItem","position":3,"name":"Crafting an Extension Framework for MySQL: a talk from MySQL BR Conf 2026"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/crafting-an-extension-framework-for-mysql-a-talk-from-mysql-br-conf-2026-uybzv2wnq#faq","mainEntity":[{"@type":"Question","name":"How does VillageSQL's Extension Framework differ from standard MySQL User-Defined Functions?","acceptedAnswer":{"@type":"Answer","text":"VillageSQL's Extension Framework (VEF) uses VEF-Defined Functions (VDFs), which resemble MySQL's User-Defined Functions but are designed to be easier to write in C++ and harder to misuse. The framework also supports types that take parameters, such as vectors needing a length, and includes an 'escape path' pattern for functions lacking tidy, compile-time signatures like printf. Engineers evaluating MySQL extension tooling can track frameworks like this one on daily.dev."}},{"@type":"Question","name":"Can PostgreSQL extensions like hstore be ported to MySQL?","acceptedAnswer":{"@type":"Answer","text":"Yes, VillageSQL ported PostgreSQL's hstore extension to its MySQL-based Extension Framework using VillageSQL's Claude Code skill, demonstrating the practicality of cross-database extension porting. The talk at MySQL BR Conf 2026 covers what the port involved and its cost, though specific cost figures were not detailed beyond discussing the process. Developers weighing cross-database extension work can follow cases like this on daily.dev."}}]}
```

