Bonjour !

Je viens de rendre disponible un petit projet pour faciliter la vie des développeurs C++ qui ont besoin d'exposer leur API afin de rendre certaines fonctionnalités scriptables.

Ce qui m'a toujours posé problème en exposant une API, c'est la nécessité d'écrire du code jouant le rôle d'intérmédiaire entre C++ et le langage de script utilisé.

Rarity est un outil visant à minimiser ce travail en utilisant de la génération de code et un petit set d'object très simples.
Le principe est simple: décrivez les objects que vous souhaitez exposer simplement en YML (les noms de classes, headers, noms de méthodes et types de paramètres), executez le script, linkez votre application avec la libruby et le code généré: c'est terminé.

Si ça vous intéresse, j'en suis ravis, et vous pouvez d'ores et déjà jeter un oeil sur le git-hub associé:
https://github.com/Plaristote/Rarity

Je n'ai pas totalement fini, mais cet outil est déjà utilisable tel quel.
Rarity s'occupe de convertir les types lorsque Ruby fait appel à une méthode C++. Toutes les classes déclarées dans les fichiers YML sont donc bien sûr converties correctement, en plus de certains types de base (string, fixnum, float, bool). Je prévois d'ajouter le support pour la conversion d'Array -> std::vector, Hash -> std::map, et Proc -> std::function.
Ce qui viendra naturellement avec des helpers permettant de faire rapidement la conversion dans le sens inverse également.

Je suis ouvert à toutes les questions et suggestions !
De plus, je n'ai pas trouvé d'alternatives à Rarity sur le web, mais j'aimerais beaucoup entendre parler de solutions similaires s'il en existe.