프로젝트 소개
Harmony는 .NET 및 Mono용 강력한 라이브러리로, 개발자가 원본 소스 코드나 파일을 수정하지 않고도 런타임에 애플리케이션의 기능을 변경할 수 있게 해줍니다. 메서드를 패치하기 위한 우아한 고수준 API를 제공하여 원래 메서드 앞, 뒤 또는 대체로 코드를 실행할 수 있으며, 메서드의 IL 코드를 직접 수정할 수도 있습니다. 이는 게임 모드 제작, 애플리케이션 확장, 테스트 및 디버깅을 위한 계측 추가에 이상적입니다.
이 라이브러리는 모딩 커뮤니티에서 잘 정립되어 있으며, Rust, Rimworld, Stardew Valley, Cities: Skylines 같은 인기 게임을 지원합니다. 또한 Microsoft와 Google의 WPF 컨트롤 단위 테스트 같은 전문 환경에서도 사용됩니다. Harmony는 여러 패치가 충돌 없이 공존할 수 있도록 지원하여 안정성과 유연성을 보장합니다.
설치는 NuGet을 통해 간단하며, 두 가지 패키지 옵션이 있습니다: Lib.Harmony(의존성이 병합된 단일 파일 어셈블리, 권장)와 Lib.Harmony.Thin(의존성을 직접 관리하려는 경우)입니다. 포괄적인 문서는 harmony.pardeike.net에서 제공되며, 공식 Discord 서버에서 커뮤니티 지원을 받을 수 있습니다.
이 프로젝트는 활발히 유지 관리되며, Harmony 2.x는 master 브랜치에, Harmony 3 개발(Infix 패칭 포함)은 별도 브랜치에 있습니다. Harmony 1은 더 이상 사용되지 않으며 2.x와 호환되지 않습니다. 이 라이브러리는 기본 IL 조작 기능을 위해 MonoMod.Core를 활용합니다.
.NET 애플리케이션을 동적으로 확장하거나 수정하려는 개발자에게 Harmony는 대규모 사용자 기반과 지속적인 기여를 갖춘 견고하고 잘 테스트된 솔루션을 제공합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.