Perhaps using gobject-introspection, like we do in HarfBuzz...
G-I sucks for non-GObject projects though; a SWIG or even ctypes alternative might be easier. Not sure. Just filing the request for now.
sounds nice. let me take a look.
FWIW providing all of public APIs for language bindings may be hard. some of them isn't designed like OOP concept. this is another topic but may be good to polish them in fontconfig 3 but anyway.
But just in case, which API pieces do you have in mind exactly?
Given that we use g-i, it assumes the function takes the object in the first argument. in that sense, we can't provide bindings for functions one will mostly uses like FcFont*List(), FcFont*Match(), FcFont*Sort() because these aren't placed at the namespace of FcConfig say. we need to wrap up to make them language-bindings available.
Functions that don't match the naming pattern will be bound as module functions, so that's not a problem. We would get fc.FontSort(cfg, ...).