SharpTls 0.9.0-preview.5

This is a prerelease version of SharpTls.
dotnet add package SharpTls --version 0.9.0-preview.5
                    
NuGet\Install-Package SharpTls -Version 0.9.0-preview.5
                    
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="SharpTls" Version="0.9.0-preview.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SharpTls" Version="0.9.0-preview.5" />
                    
Directory.Packages.props
<PackageReference Include="SharpTls" />
                    
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 SharpTls --version 0.9.0-preview.5
                    
#r "nuget: SharpTls, 0.9.0-preview.5"
                    
#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 SharpTls@0.9.0-preview.5
                    
#: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=SharpTls&version=0.9.0-preview.5&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=SharpTls&version=0.9.0-preview.5&prerelease
                    
Install as a Cake Tool

SharpTls

Own the handshake. Shape every byte.

SharpTls is a pure managed C# TLS stack for .NET 9+ with uTLS-style, byte-exact ClientHello control. It implements TLS directly over caller-owned transports and does not use SslStream, native TLS libraries, P/Invoke, proxies or external processes.

Install

dotnet add package SharpTls --prerelease

Minimal client

using SharpTls;

var options = new CustomTlsClientOptions
{
    ServerName = "example.com",
    ClientHello = ClientHelloProfiles.Custom(builder => builder
        .WithTls13()
        .WithAlpn("http/1.1")),
};

await using var client = new CustomTlsClient(options);
await client.ConnectAsync("example.com", 443, cancellationToken);

await using var tls = client.OpenApplicationStream(leaveClientOpen: true);
await tls.WriteAsync(requestBytes, cancellationToken);
var bytesRead = await tls.ReadAsync(responseBuffer, cancellationToken);

Included surface

  • Exact semantic/raw extension layout, cipher suites, groups, key shares, signatures, versions, SNI, ALPN, GREASE, padding, session ID and record fragmentation.
  • Forty pinned upstream uTLS wire IDs, coherent randomization, bounded origin-aware Roller, capture import, strict JSON v6 and defensive pre-send inspection.
  • TLS 1.3 and a deliberately restricted TLS 1.2 client/server core.
  • System chain and hostname validation by default, explicit lab-only trust bypass, configurable revocation-availability policy, RSA-PSS/ECDSA authentication, resumption, external PSK, replay-gated 0-RTT, KeyUpdate, exporters and client certificates.
  • RFC 9849 ECH, RFC 9848 HTTPS/SVCB discovery, X25519MLKEM768, delegated credentials, certificate compression and recordless QUIC-TLS client/server adapters.

HTTP/2, HTTP/3, generic HttpClient integration and full QUIC transport are outside the TLS library boundary.

SharpTls is pre-1.0. Independent cryptographic review and hosted release evidence remain explicit 1.0 gates. Review the repository security policy and exact supported surface before production adoption.

The package contains the complete documentation set, security policy, changelog, license and third-party notices. The package project URL points to the source repository for current guides, examples and issue reporting.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  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.
  • net9.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.9.0-preview.5 75 7/21/2026
0.9.0-preview.4 59 7/18/2026

Pre-1.0 preview. See CHANGELOG.md and docs/RELEASE-HARDENING.md for changes and release gates.