Interesting extension that I'd love to try out. I was wondering: why exactly did you develop this extension? Did you develop it to get better performance out of the Variables extension? Or does the Variables extension offer functionality that you can't get (easily) from Lua otherwise?
Extension talk:VariablesLua
No it does not provide any additional functionality. All the extension does is call something like mw.getCurrentFrame():callParserFunction( '#var', 'foo' ) You can implement it with a module without much of a performance decrease. I think the main point of the extension is that it's easy to distribute across the Liquipedia wiki farm. The performance benefits are minimal at best.
local start = os.clock() local var = mw.ext.VariablesLua.var for i=1,10000 do var( 'foo' ) end mw.log( os.clock() - start ) --> 0.114381835 local start = os.clock() for i=1,10000 do mw.getCurrentFrame():callParserFunction( '#var', 'foo' ) end mw.log( os.clock() - start ) --> 0.120059905
EDIT:
Seems like there's a bit more difference when also using <code>vardefine</code> (but probably still negligible):
local start = os.clock() local var = mw.ext.VariablesLua.var local vardefine = mw.ext.VariablesLua.vardefine for i=1,10000 do vardefine( 'foo', 'bar' ) var( 'foo' ) end mw.log( os.clock() - start ) --> 0.151331927 local start = os.clock() for i=1,10000 do mw.getCurrentFrame():callParserFunction( '#vardefine', { 'foo', 'bar' } ) mw.getCurrentFrame():callParserFunction( '#var', 'foo' ) end mw.log( os.clock() - start ) --> 0.253298621
Thanks! I'm not aware of any performance issues with the Variables extension myself, but I was wondering if power users - people who aren't afraid to declare 500 variables on a single page - might stand to benefit from a Lua solution. Looks useful anyway.
I know I'm late, but to jump in as the author: I mostly made this to familiarize myself with the interface of creating Scribunto extensions. Having an actual project that produces something is always more fun.