À propos du projet

Harmony est une bibliothèque puissante pour .NET et Mono qui permet aux développeurs de modifier la fonctionnalité des applications à l'exécution sans modifier le code source ou les fichiers d'origine. Elle fournit une API élégante et de haut niveau pour patcher les méthodes, permettant au code de s'exécuter avant, après, ou même de remplacer la méthode d'origine, ainsi que de modifier directement le code IL de la méthode. Cela la rend idéale pour créer des mods pour les jeux, étendre des applications, ou ajouter de l'instrumentation pour les tests et le débogage. La bibliothèque est bien établie dans la communauté du modding, avec le support de jeux populaires comme Rust, Rimworld, Stardew Valley et Cities: Skylines. Elle est également utilisée dans des environnements professionnels, tels que les tests unitaires des contrôles WPF chez Microsoft et Google. Harmony prend en charge la coexistence de plusieurs patches sans conflits, garantissant stabilité et flexibilité. L'installation est simple via NuGet, avec deux options de paquets : Lib.Harmony pour un assemblage à fichier unique avec dépendances fusionnées (préféré) et Lib.Harmony.Thin pour ceux qui souhaitent gérer les dépendances eux-mêmes. Une documentation complète est disponible sur harmony.pardeike.net, et un serveur Discord officiel fournit un support communautaire. Le projet est activement maintenu, avec Harmony 2.x sur la branche master et le développement de Harmony 3 (y compris le patching Infix) sur une branche séparée. Harmony 1 est obsolète et n'est pas compatible avec 2.x. La bibliothèque utilise MonoMod.Core pour ses capacités de manipulation IL sous-jacentes. Pour les développeurs cherchant à étendre ou modifier dynamiquement des applications .NET, Harmony offre une solution robuste et bien testée avec une large base d'utilisateurs et des contributions continues.