announcing honeysuckle


as i’ve been working on various projects for the past couple of years i have continued to find that a combination of c and lua is my favorite way to write code. the ongoing development of my game engine honey uses that pair and i’m planning on using it (whenever i get around to it) for my dream atlas project. but, and i’ll be the first to admit this, the c api is a little clunky. i don’t generally mind that all too much (after all, one of my favorite things about both c and lua is that they’re languages you can carry around in your head, and having a very explicit api means you only need to understand the fundamental concepts to use it) but it does mean that dev work goes a bit slower.

i did a good bit of work streamlining the process of writing lua bindings in c when tinkering with honey and ever since then i’ve found myself peeking back at that code and re-implementing it in other projects. a colleague of mine once said that the time to write a library is when you’ve done something once, you’re doing it now, and you re pretty sure you’ll do it again, and i think i’ve quite handily cleared that condition so! i’m splitting that code out and refactoring it into its own library which, due to its historical roots, i’ve chosen to call honeysuckle.

honeysuckle is still under development – the api is a bit different from the one i came up with when working on honey and imo is easier to use – but when it’s ready it will provide a whole host of helpful functions that make integrating lua scripting into c applications simple and fast. i am (attempting) to employ readme-driven development so i’ve written up a readme for honeysuckle. any feedback on the proposed api and features would be much appreciated! as of writing, honeysuckle is planned to include functions for parsing arguments to c functions from lua, creating and processing tables throwing and handling lua errors, using the lua registry, and creating printf-formatted strings.

i’ve already created a repository for honeysuckle. there’s just a readme in there for now, but that will probably have changed even just later today, since i’m planning on working on it more this afternoon. :p