A minimal, easy-to-use MVVM library for building multi-platform XAML applications in C# and F#.
Epoxy is a multi-platform MVVM library for building XAML-based applications in .NET. It provides a minimal, easy-to-understand set of tools to implement the Model-View-ViewModel pattern across platforms like WPF, Avalonia, OpenSilver, and .NET MAUI, reducing the complexity often associated with MVVM.
Developers building desktop or cross-platform GUI applications with XAML who want a straightforward, dependency-light MVVM solution. It's especially suitable for those new to MVVM or working in multi-platform environments.
Epoxy stands out for its simplicity and minimalism—it avoids forcing a rigid architecture, offers independent features that can be combined freely, and has no external dependencies beyond the target platform, making it easy to adopt and integrate.
Easy, simplicity and minimalism multi-platform MVVM library.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Epoxy relies only on standard platform libraries, avoiding external framework bloat and simplifying integration, as stated in the README's 'No dependency on non-platform standard frameworks' philosophy.
The Command factory safely wraps async delegates, enabling seamless async-await in UI event handlers, and UIThread abstracts platform-specific thread handling for smooth asynchronous operations.
Offers unified APIs across WPF, Avalonia, MAUI, and OpenSilver via dedicated NuGet packages, reducing the learning curve for multi-platform XAML development.
Provides specialized NuGet packages with camel-case APIs, Async type integration, and automatic XAML resourceization, catering specifically to F# developers' workflows.
The Visual Studio template wizard and template projects are discontinued as of version 1.15.0, forcing manual setup which can increase initial project configuration time.
Support for Avalonia <=10 and OpenSilver is being phased out (marked as 'last release' in version 1.16.0), potentially requiring migration efforts for existing projects.
Features like EventBinder rely on reflection, which can impact performance and may not be optimized for all scenarios, as noted in the Fountain/Well migration discussion.