r/mariadb 1h ago

MariaDB plugins beyond C++: Python and Rust lead our poll, but should we look at WebAssembly?

We recently asked the MariaDB community which language they would use to write MariaDB plugins.

2,090 people voted:

  • Python: 21%
  • Rust: 19%
  • Go: 12%
  • JavaScript: 11%
  • TypeScript: 9%
  • Lua: 8%

Only around 4% said they would simply keep using C++.

What I found interesting is that there isn't really one clear alternative language. That made me wonder if we're asking the wrong question.

Instead of “Which language should MariaDB support?”, perhaps it should be:

“How can we make the MariaDB plugin API accessible from several languages?”

One option I think is particularly interesting is WebAssembly, potentially using Wasmtime together with the Component Model and WIT.

I wrote up the poll results, some thoughts about previous approaches such as GraalVM/V8, and why WebAssembly might be worth exploring:

https://mariadb.org/mariadb-plugins-beyond-c-what-the-community-told-us/

There is also an open MDEV for supporting plugins written in languages other than C/C++:

MDEV-40189

It's still unassigned, so if this is something you'd like to experiment with, even a small proof of concept would be useful.

I'm also curious what people here think: would you prefer bindings for specific languages, or a WebAssembly-based extension model?

1 Upvotes

0 comments sorted by