Skip to content
@ktsu-dev

ktsu.dev

ktsu.dev

.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.

Design Principles

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.

Key Libraries

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.

Type Safety and Semantics

  • 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

UI and Theming

  • 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

Applications and Tools

  • 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

Utilities

  • 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

Getting Started

All libraries ship as NuGet packages:

dotnet add package ktsu.Semantics.Strings
dotnet add package ktsu.Extensions
dotnet add package ktsu.ImGui.App

ktsu.Sdk

ktsu.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

Usage

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"
  }
}

Project Status

Repo Ships Stable SDK Stars Activity Status
AppDataStorage lib NuGet Version SDK Stars Activity Status
BlastMerge libcli NuGet Version SDK Activity Status
BuildMonitor app GitHub Version SDK Stars Activity Status
CaseConverter lib NuGet Version SDK Activity Status
CodeBlocker lib NuGet Version SDK Stars Activity Status
Coder libcliapp GitHub Version SDK Stars Activity Status
Containers lib NuGet Version SDK Stars Activity Status
CredentialCache lib NuGet Version SDK Stars Activity Status
DeepClone lib NuGet Version SDK Activity Status
DelegateTransform lib NuGet Version SDK Activity Status
Essentials lib NuGet Version SDK Activity Status
Extensions lib NuGet Version SDK Activity Status
FileDeduplicator cli GitHub Version SDK Stars Activity Status
Frontmatter lib NuGet Version SDK Stars Activity Status
FuzzySearch lib NuGet Version SDK Stars Activity Status
GitBranchStateCache libtool NuGet Version SDK Activity Status
GitIntegration lib NuGet Version SDK Stars Activity Status
GitLfsCache libtool NuGet Version SDK Activity Status
IconHelper app GitHub Version SDK Activity Status
ImageDescriber cli GitHub Version SDK Stars Activity Status
ImGuiApp lib NuGet Version SDK Stars Activity Status
ImGuiCredentialPopups lib NuGet Version SDK Activity Status
ImGuiProvider lib NuGet Version SDK Stars Activity Status
IntervalAction lib NuGet Version SDK Activity Status
Invoker lib NuGet Version SDK Stars Activity Status
JsonRequiredConditionally lib NuGet Version SDK Stars Activity Status
Keybinding lib GitHub Version SDK Activity Status
KtsuBuild libtool NuGet Version SDK Activity Status
KtsuTools libcli GitHub Version SDK Activity Status
Navigation lib NuGet Version SDK Activity Status
NJsonSchemaJsonConverter lib NuGet Version SDK Activity Status
PreciseNumber lib NuGet Version SDK Activity Status
ProjectDirector app GitHub Version SDK Activity Status
RoundTripStringJsonConverter lib NuGet Version SDK Activity Status
RunCommand lib NuGet Version SDK Activity Status
Schema libcliapp NuGet Version SDK Stars Activity Status
ScopedAction lib NuGet Version SDK Activity Status
Semantics lib NuGet Version SDK Stars Activity Status
SignificantNumber lib NuGet Version SDK Stars Activity Status
SingleAppInstance lib NuGet Version SDK Activity Status
Sorting lib NuGet Version SDK Activity Status
SvnToGit libcli GitHub Version SDK Activity Status
TextFilter lib NuGet Version SDK Activity Status
ThemeProvider libapp NuGet Version SDK Stars Activity Status
TUI libcli GitHub Version SDK Stars Activity Status
UndoRedo lib GitHub Version SDK Activity Status

Popular repositories Loading

  1. ImGuiApp ImGuiApp Public

    A comprehensive .NET library suite for building desktop applications with Dear ImGui.

    C# 9 4

  2. TUI TUI Public

    A modern, extensible Text User Interface (TUI) library for .NET that provides rich terminal UI components built on Spectre.Console. Create interactive console applications with styled text, borders…

    C# 3 1

  3. AppDataStorage AppDataStorage Public

    A .NET library for persistent application data storage using JSON serialization. Provides a simple inherit-and-use pattern with automatic file management, thread-safe operations, debounced saves, b…

    C# 2 1

  4. ImGuiWidgets ImGuiWidgets Public archive

    PowerShell 2

  5. FuzzySearch FuzzySearch Public

    Lightweight .NET fuzzy string matching library with intelligent scoring for search-as-you-type, command palettes, and flexible string matching applications.

    C# 2

  6. CredentialCache CredentialCache Public

    A cross-platform credential cache for .NET that keeps secrets in memory for fast process-lifetime lookup and persists each one through the host's native keyring: Windows Credential Manager, macOS K…

    C# 2

Repositories

Showing 10 of 74 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…