Retour au classement

pardeike/Harmony

C#patreon.com/pardeike

A library for patching, replacing and decorating .NET and Mono methods during runtime

csharppatcherdetourdetoursruntimemonodotnetunitycilmonkey-patchingnon-destructive
Croissance des étoiles
Étoiles
6.6k
Forks
566
Croissance hebdomadaire
Issues
4
2k4k6k
janv. 2017mars 2020mai 2023juil. 2026
README

Harmony
Version 2.4
A library for patching, replacing and decorating
.NET and Mono methods during runtime.

About

Harmony gives you an elegant and high level way to alter the functionality in applications written in C#. It works great in games and is well established in titles like

RustRimworld7 Days To DieStardew ValleySubnauticaOxygen Not IncludedBesiegeCities:SkylinesKerbal Space ProgramResoniteBattleTechSlime RancherGenshin Impact Miliastra Wonderland

and others like Ravenfield, Sheltered, Staxel, The Ultimate Nerd Game, Total Miner, Unturned, SCP: Secret Laboratory ...

It is also used in unit testing WPF controls at Microsoft and Google and in many other areas.

How it works

If you develop in C# and your code is loaded as a module/plugin into a host application, you can use Harmony to alter the functionality of all the available assemblies of that application. Where other patch libraries simply allow you to replace the original method, Harmony goes one step further and gives you:

• A way to keep the original method intact • Execute your code before and/or after the original method • Modify the original with IL code processors • Multiple Harmony patches co-exist and don't conflict with each other • Works at runtime and does not touch any files

Installation

If you want a single file, dependency-merged assembly, you should use the Lib.Harmony nuget package. This is the preferred way.

If you instead want to supply the dependencies yourself, you should use the Lib.Harmony.Thin nuget package. You get more control but you are responsible to make all references available at runtime.

Documentation

Please check out the documentation and join the official discord server.

Contribute

I put thousands of hours into this project and its support. So every little action helps:

• Become a GitHub sponsor or a Patreon • Upvote this stackoverflow answer • Spread the word in your developer communities

This project uses the great MonoMod.Core library by 0x0ade and nike4613.

Harmony 1

Harmony 1 is deprecated and not under active development anymore. The latest version of it (v1.2.0.1) is stable and contains only minor bugs. Keep using it if you are in an environment that exclusively uses Harmony 1. Currently Harmony 1.x and 2.x are NOT COMPATIBLE with each other and SHOULD NOT BE MIXED. The old documentation can still be found at the Wiki.


 

Dépôts similaires
jellyfin/jellyfin

The Free Software Media System - Server Backend & API

C#GNU General Public License v2.0jellyfincsharp
jellyfin.org
54.5k5.1k
files-community/Files

A modern file manager that helps users organize their files and folders.

C#MIT Licensefluent-designxaml
files.community
44.4k2.8k
ShareX/ShareX

ShareX is a free and open-source application that enables users to capture or record any area of their screen with a single keystroke. It also supports uploading images, text, and various file types to a wide range of destinations.

C#GNU General Public License v3.0screen-capturescreen-recorder
getsharex.com
38.7k3.9k
doocs/leetcode

🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解

JavaMavenCreative Commons Attribution Share Alike 4.0 Internationalalgorithmscpp
leetcode.doocs.org
36.3k9.4k
DevToys-app/DevToys

A Swiss Army knife for developers.

C#MIT Licensesyntax-highlightingdeveloper-tools
devtoys.app
31.8k1.8k
AvaloniaUI/Avalonia

Develop Desktop, Embedded, Mobile and WebAssembly apps with C# and XAML. The future of .NET UI

C#MIT Licensec-sharpxaml
avaloniaui.net
31.2k2.8k
microsoft/calculator

Windows Calculator: A simple yet powerful calculator that ships with Windows

C++MIT Licenseuwpwindows
31k5.8k
BeyondDimension/SteamTools

🛠「Watt Toolkit」是一个开源跨平台的多功能 Steam 工具箱。

C#GNU General Public License v3.0steamcsharp
steampp.net
26.2k1.7k
pulumi/pulumi

Pulumi - Infrastructure as Code in any programming language 🚀

GoGo ModulesApache License 2.0infrastructure-as-codeserverless
pulumi.com
25.5k1.4k
mxgmn/WaveFunctionCollapse

Bitmap & tilemap generation from a single example with the help of ideas from quantum mechanics

C#Otherprocedural-generationmachine-learning
25.2k1.3k
quozd/awesome-dotnet

A collection of awesome .NET libraries, tools, frameworks and software

Creative Commons Zero v1.0 Universaldotnetawesome
21.5k2.9k
thangchung/awesome-dotnet-core

:honeybee: A collection of awesome .NET core libraries, tools, frameworks and software

C#dotnet-coreawesome-list
21.3k3k