Sobre o projeto

Harmony é uma biblioteca poderosa para .NET e Mono que permite aos desenvolvedores alterar a funcionalidade de aplicativos em tempo de execução sem modificar o código-fonte original ou os arquivos. Ela fornece uma API elegante e de alto nível para aplicar patches em métodos, permitindo que o código seja executado antes, depois ou até mesmo substitua o método original, além de modificar diretamente o código IL do método. Isso a torna ideal para criar mods para jogos, estender aplicativos ou adicionar instrumentação para testes e depuração. A biblioteca é bem estabelecida na comunidade de modding, com suporte para jogos populares como Rust, Rimworld, Stardew Valley e Cities: Skylines. Também é usada em ambientes profissionais, como em testes unitários de controles WPF na Microsoft e no Google. Harmony suporta múltiplos patches coexistindo sem conflitos, garantindo estabilidade e flexibilidade. A instalação é simples via NuGet, com duas opções de pacote: Lib.Harmony para um assembly de arquivo único com dependências mescladas (preferido) e Lib.Harmony.Thin para aqueles que desejam gerenciar as dependências por conta própria. Documentação abrangente está disponível em harmony.pardeike.net, e um servidor oficial no Discord oferece suporte da comunidade. O projeto é mantido ativamente, com Harmony 2.x no branch master e o desenvolvimento do Harmony 3 (incluindo patches Infix) em um branch separado. Harmony 1 está obsoleto e não é compatível com 2.x. A biblioteca utiliza o MonoMod.Core para suas capacidades subjacentes de manipulação de IL. Para desenvolvedores que buscam estender ou modificar aplicativos .NET dinamicamente, Harmony oferece uma solução robusta e bem testada, com uma grande base de usuários e contribuições contínuas.