KiteKey.Core 0.2.0

dotnet add package KiteKey.Core --version 0.2.0
                    
NuGet\Install-Package KiteKey.Core -Version 0.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="KiteKey.Core" Version="0.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="KiteKey.Core" Version="0.2.0" />
                    
Directory.Packages.props
<PackageReference Include="KiteKey.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add KiteKey.Core --version 0.2.0
                    
#r "nuget: KiteKey.Core, 0.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package KiteKey.Core@0.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=KiteKey.Core&version=0.2.0
                    
Install as a Cake Addin
#tool nuget:?package=KiteKey.Core&version=0.2.0
                    
Install as a Cake Tool

Kite & Key .NET foundation

Portable components extracted and adapted from Delphinium Common. Requires .NET 10. All packages are MIT licensed; the repository's LICENSE and this README are included in each package. The source packages include portable PDBs and GitHub Source Link.

Package Dependency Contents
KiteKey.Core .NET 10 only Keyed caches, collections, async/concurrency, text/date/enum/reflection helpers, file rotation and file abstractions
KiteKey.Hosting Microsoft.Extensions configuration/DI/hosting/options 10.0.0 Required configuration, development defaults, validated options, scoped values, service discovery
KiteKey.Mail KiteKey.Core, Microsoft.Extensions.Logging.Abstractions 10.0.0 SMTP sender, recipient allowlist, plain text mail builder

The expanded packages are version 0.2.0; 0.1.0 is already published. KiteKey.Core caches are not thread-safe: coordinate access externally when sharing instances across threads. .NET 10 supplies most async LINQ operations: Core deliberately omits duplicate extension signatures to avoid ambiguous method calls. File rotation manages paths supplied by the caller; the physical directory abstraction rejects paths escaping its root. Obfuscate is cosmetic, not a way to anonymize sensitive data. SMTP settings must be supplied by the consuming app; this repository contains no credentials. Omit the allowlist only when arbitrary recipients are intended (such as production). Mail messages are owned and disposed by the caller. MailSender owns its SMTP clients and releases them after each send.

using KiteKey.Hosting;
using KiteKey.Mail;
using Microsoft.Extensions.DependencyInjection;

services.AddScopeValue<RequestContext>();
services.AddOptionsValidated<MyOptions>("MyOptions");
using IServiceScope scope = provider.CreateScope();
scope.SetScopeValue(new RequestContext());

using MailSender sender = new(
    new MailSettings { SmtpServer = "smtp.example.com", FromAddress = "sender@example.com" },
    allowedDestinations: ["recipient@example.com"]);
using var message = sender.CreateMailMessage("recipient@example.com", "Hello", "Plain text");
// await sender.SendAsync(message);

Build locally from the repository root with dotnet test KiteKey.sln and dotnet pack KiteKey.sln -c Release -o artifacts.

CI packs on pull requests and main pushes. NuGet.org has a trusted-publishing policy owned by the KiteKey NuGet organization for GitHub owner Kite-Key, repository foundation, workflow release.yml, environment nuget, and the exact package IDs KiteKey.Core, KiteKey.Hosting, and KiteKey.Mail. The NUGET_USER repository variable is taylorchasewhite, the NuGet.org policy creator (not the organization owner or an email address), as required by NuGet/login. Protect the nuget environment and release tags. After verifying tests, contents, and versions, push a v0.2.0-style tag on main. The workflow uses OIDC and a short-lived token, not a saved API key.

See architecture and source mapping.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on KiteKey.Core:

Package Downloads
KiteKey.Mail

SMTP mail sending and plain text email composition.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.2.0 94 9/28/2026
0.1.0 96 9/28/2026