kate's C# Shared Library!
A series of utility/helper classes to make my life easier with rapidly developing projects at home, and at work.
Important
Since I mostly use all of these libraries for personal use, I might not accept PRs for new enhancements unless I see some purpose in it.
- kate.shared: Platform-agnostic helper classes
- Embedded Resource exception
- Pre-made Regular Expressions for detecting Base64
- Randomly selecting items in a collection with weights (e.g: 30% chance for A to be selected, 15% chance for B to be selected, etc...)
- Easily retry running a function if it times out in any way.
(
kate.shared/Helpers/ExceptionHelper.cs) - Detect if an exception could be classified as a timeout.
- Array element shifting (in ArrayExtensions)
- Parse hexadecimal in strings as an array of bytes
- Easily read embedded resources and check if they exist
- kate.shared.EtoForms: Helper classes for Eto.Forms, which includes;
- Bitmap/Icon caching
- Svg to Bitmap/Icon conversion from Embedded Resource at runtime
- Helper methods for updating font size, style, and family without creating a
new instance (e.g:
myFont.WithFontSize(9f)) - Svg to Png conversion
- Svg to Ico conversion (with 32bpp ico support!)
- Image scaling (via
System.Drawing.Image)
- kate.shared.CommandLine:
- Easily generate commands and command options for use with System.CommandLine
Note
Currently there aren't any good samples for a lot of the things in these
projects, but samples on how to use (for example) kate.shared.CommandLine
will come in the future ^w^
The same goes for Unit Tests. They will be made sometime in the future, but not too far away
kate, 2026/07/21
- ✔️ - Supported and working.
⚠️ - Not Tested- ❌ - Not Supported
| Supported .NET Version | kate.shared |
kate.shared.CommandLine |
kate.shared.EtoForms |
|---|---|---|---|
| .NET 10.x | ✔️ | ✔️ | ✔️ |
| .NET 9.x | ✔️ (via .NET 8) | ✔️ (via .NET 8) | ✔️ (via .NET 8) |
| .NET 8.x (recommended) | ✔️ | ✔️ | ✔️ |
| .NET 6.x | ❌ | ❌ | |
| Framework 2.x to 4.x | ❌ | ❌ | |
| Core 1.x to 3.x | ❌ | ❌ |
Notes
- .NET Framework 4.x to 2.x, and .NET Core 3.x to 1.x, and .NET 6 are inferred
since
kate.sharedtargetsnetstandard2.0. - .NET 9 support is inferred, since all projects target .NET 8
The code for kate.shared and all projects in this repository are licensed
under the Apache 2.0 License.
Please see the license file FOR MORE INFORMATION.
tl;dr You can do what you want with the software, as long you include the required notices (which would be the license & copyright). The developers aren't liable for anything bad that happens.
In the event something happens to my Github account, I've mirrored this repository (and the NuGet packages) to other places on the internet.
| Name | Mirrors |
|---|---|
kate.shared |
NuGet.org, Github, git.redfur.cloud |
kate.shared.CommandLine |
NuGet.org, Github, git.redfur.cloud |
kate.shared.EtoForms |
NuGet.org, Github, git.redfur.cloud |