.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.
- 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
- PersistenceProvider: unified persistence with swappable storage backends (Memory, FileSystem, AppData, Temporary)
- SerializationProvider: serialization behind a common interface so formats can change without touching call sites
- FileSystemProvider: file system access as an injectable, testable dependency
- ThemeProvider: theme management and styling using color science and semantic remapping
- ImGuiProvider: ImGui abstraction layer for backend-independent UI code
- ImGuiApp: Dear ImGui application scaffolding, widgets, modal dialogs, and styling
- BlastMerge: cross-repository file synchronization through iterative merging with interactive conflict resolution
- UniversalSerializer: one serialization API across JSON, XML, YAML, TOML, and MessagePack
- IntervalAction: recurring actions without manual timer management
- Invoker: thread-safe delegate execution for UI applications
- ScopedAction: RAII-style setup and teardown patterns
- CaseConverter: string case conversion
- FuzzySearch: approximate string matching
- SingleAppInstance: prevent multiple application instances
All libraries ship as NuGet packages:
dotnet add package ktsu.Semantics.Strings
dotnet add package ktsu.PersistenceProvider
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": "9.0.301",
"rollForward": "latestFeature"
},
"msbuild-sdks": {
"MSTest.Sdk": "4.0.2",
"ktsu.Sdk": "1.75.0",
"ktsu.Sdk.ConsoleApp": "1.75.0",
"ktsu.Sdk.App": "1.75.0"
}
}| Repo | Stable | winget | Activity | Status | README |
|---|---|---|---|---|---|
| BlastMerge | |||||
| BuildMonitor | |||||
| Coder | |||||
| CrossRepoActions | |||||
| FileDeduplicator | |||||
| IconHelper | |||||
| ImageDescriber | |||||
| KtsuTools | |||||
| ProjectDirector | |||||
| SvnToGit | |||||
| SyncFileContents | |||||
| TUI |