Well we have a GTK3 wrapper in Nimble and there are project like "nimterop" etc that try to do that.
IMO everything beyond c2nim's approach is deeply flawed as the type information available in C is too weak. `int fn(int count; char* args);` is this a pointer to a byte array? A pointer to a single byte? A `cstring`? GCC doesn't know and so for high quality wrappers you need to _add_ information, you need to _write_ a wrapper, with tooling support, but it cannot be completely automatic.
