

Show HN: Another C++ Lua Wrapper - vapourismo
https://github.com/vapourismo/luwra

======
Doctor_Fegg
Looks interesting. I've recently released a C++ project that embeds Lua
([https://github.com/systemed/tilemaker](https://github.com/systemed/tilemaker),
a utility to make 'vector tiles' directly from OpenStreetMap data dumps) but
installation of Luabind is pretty much the pain point for everyone who's tried
it. (bjam? I mean, why?) A header-only library is really tempting.

~~~
vapourismo
Hope it works for you - love to hear some additional feedback.

~~~
luizpv9
Seems really well done and well documented. Sorry to ask this without
exploring the code myself (!), but there is a check in common.hpp for C++14
compliant compiler. What features of C++14 are you using in this project?

~~~
moonchrome
From what I can see (quick glance) he uses integer_sequence
[https://github.com/vapourismo/luwra/blob/56a566dd9e20fc7e3c9...](https://github.com/vapourismo/luwra/blob/56a566dd9e20fc7e3c97baf2b0d3eb108d75dce1/lib/luwra/types.hpp#L271)

~~~
vapourismo
Also variable templates, which are crucial to generating the metatable name
for user types.

------
TillE
If you've written this, presumably you've found something lacking in the other
eight billion Lua/C++ bindings (I agree, they all have major deficiencies,
such that Luabind remains my "least bad" choice).

Could you explain exactly what yours does differently?

~~~
dman
Could you elaborate on common deficiencies? What does Luabind get right? What
are its shortcomings?

~~~
Doctor_Fegg
Luabind is terrible to install. The most up-to-date version
([https://github.com/rpavlik/luabind](https://github.com/rpavlik/luabind)) is
nowhere to be found on the first three pages of Google results for 'luabind'.
It requires and builds with Boost, with all the attendant package version
conflicts - for example, the Luabind package for Ubuntu 14.04 has the two-
year-old Boost 1.54 as a dependency, which typically conflicts with newer
Boosts from PPAs. And for some reason the github source generates a library
called libluabindd.so, with a spurious extra 'd' which requires symlinking to
libluabind before stuff will build against it.

It's a shame, because the library itself is intuitive and reliable, but
building it is just painful.

------
pikachu_is_cool
I'm generally not a fan of these Lua C API wrappers because they tend to add a
lot of useless syntactic sugar that makes things more complicated... but yours
is pretty good, I like the usertypes feature.

