.NET libraries and tools that use strong typing and focused APIs to catch errors at compile time instead of at runtime.
ktsu.dev is a collection of open source .NET libraries built and maintained by Matt Edmondson. It started in May 2023 and now spans more than 60 public repositories, published to NuGet under the ktsu.* namespace. Each library solves one specific problem with a small, clear API, reflecting lessons learned from years of building production systems in games and live services.
Strong Typing and Semantic Clarity. Replace primitive types with domain-specific types, because a bug caught at compile time is cheaper than the same bug found in production. Types carry intent, so code reads as what it means.
Focused APIs. Each library does one job with a small surface area. Boilerplate and ceremony are kept out of the caller's code.
Composable Infrastructure. Provider-pattern libraries put an interface between application code and infrastructure, so backends can be swapped and tested without rewriting the code that uses them.
Modern .NET with Broad Reach. Libraries use current platform features (generic math, nullable reference types, the latest language versions) while multi-targeting from netstandard2.1 through the newest .NET, so older codebases can still consume them.
Every library below is actively maintained and published to NuGet. The table further down lists all of them with their current versions and build status.
- Semantics: semantic strings with validation, strongly typed file paths, and over 80 physical quantities with compile-time dimensional analysis
- PreciseNumber: arbitrary precision arithmetic built on .NET generic math
- SignificantNumber: arithmetic that preserves numerical precision through significant figures
- ImGuiApp: Dear ImGui application scaffolding, widgets, modal dialogs, and styling
- ThemeProvider: over 40 themes with semantic color remapping driven by color science
- ImGuiProvider: ImGui behind an interface, so backends can be swapped and UI code can be tested
- BlastMerge: cross-repository file synchronization through iterative merging with interactive conflict resolution
- KtsuTools: one command line covering the ktsu developer utilities, from build monitoring to file deduplication
- TUI: terminal user interface components for building rich console applications
- Extensions: extension methods for the types the base class library left thin
- AppDataStorage: persistent application data with automatic file management, debounced saves, and backup recovery
- CaseConverter: string case conversion
- ScopedAction: RAII-style setup and teardown patterns
- DeepClone: type-safe deep cloning through a small interface and base class
- FuzzySearch: fuzzy string matching scored for search-as-you-type and command palettes
- TextFilter: text matching over glob patterns, regular expressions, and fuzzy search
- Invoker: thread-safe delegate execution for UI applications
- SingleAppInstance: prevent multiple application instances
All libraries ship as NuGet packages:
dotnet add package ktsu.Semantics.Strings
dotnet add package ktsu.Extensions
dotnet add package ktsu.ImGui.Appktsu.Sdk is the MSBuild SDK that every ktsu.dev library builds on. Centralizing the build configuration means a fix or a standards change lands in one place and every repository picks it up.
The SDK provides:
- Build Configuration: shared compiler settings, warnings, and code analysis rules across all projects
- Code Quality Enforcement: integrated analyzers and style rules, with warnings treated as errors
- Automated Packaging: NuGet package generation with versioning and metadata
- Development Tools: common build targets and utilities for library development
Reference the SDK in the project file alongside the standard .NET SDK:
<Project>
<Sdk Name="Microsoft.NET.Sdk" />
<Sdk Name="ktsu.Sdk" />
<!-- Your project configuration -->
</Project>Pin SDK versions in global.json so every project in a solution builds with the same toolchain and updates happen in one place:
{
"sdk": {
"version": "10.0.100",
"rollForward": "latestFeature"
},
"msbuild-sdks": {
"MSTest.Sdk": "4.3.3",
"ktsu.Sdk": "2.28.0",
"ktsu.Sdk.ConsoleApp": "2.28.0",
"ktsu.Sdk.Tool": "2.28.0",
"ktsu.Sdk.App": "2.28.0"
}
}