LocalSendDotNet.Core
0.2.0-preview.5
dotnet add package LocalSendDotNet.Core --version 0.2.0-preview.5
NuGet\Install-Package LocalSendDotNet.Core -Version 0.2.0-preview.5
<PackageReference Include="LocalSendDotNet.Core" Version="0.2.0-preview.5" />
<PackageVersion Include="LocalSendDotNet.Core" Version="0.2.0-preview.5" />
<PackageReference Include="LocalSendDotNet.Core" />
paket add LocalSendDotNet.Core --version 0.2.0-preview.5
#r "nuget: LocalSendDotNet.Core, 0.2.0-preview.5"
#:package LocalSendDotNet.Core@0.2.0-preview.5
#addin nuget:?package=LocalSendDotNet.Core&version=0.2.0-preview.5&prerelease
#tool nuget:?package=LocalSendDotNet.Core&version=0.2.0-preview.5&prerelease
LocalSendDotNet.Core
LocalSendDotNet.Core is a UI-independent .NET 10 implementation of the
LocalSend v2.2 protocol. It provides discovery, secure transfer, and receiving
APIs for desktop apps, services, command-line tools, and other .NET hosts.
The library is maintained as part of the Tonarink repository. It is an unofficial implementation and is not affiliated with or endorsed by the official LocalSend project.
Install
dotnet add package LocalSendDotNet.Core --prerelease
The library targets .NET 10 and uses the ASP.NET Core shared framework for its embedded HTTP server.
Features
- IPv4 multicast discovery and two-way registration
- HTTP or HTTPS with a persisted RSA identity, mutual TLS, and certificate fingerprint pinning
- Streaming file and text send/receive without buffering complete files
- Partial acceptance, progress reporting, cancellation, and optional receiver PIN
- Safe writes with path traversal protection, temporary files, and atomic publish
- Bounded transfer concurrency, session timeouts, and SHA-256 verification
- Device lifecycle events, trusted manual endpoints, and stream-backed send items
- Folder enumeration with relative paths and common MIME type inference
Quick start
using LocalSendDotNet;
await using var node = new LocalSendNode(new LocalSendOptions
{
Alias = "My app",
DataDirectory = appDataDirectory,
DownloadDirectory = downloadsDirectory
});
await node.StartAsync(cancellationToken);
await foreach (var request in node.WatchIncomingTransfersAsync(cancellationToken))
{
_ = node.AcceptAsync(
request.RequestId,
progress: progress,
cancellationToken: cancellationToken);
}
The sibling LocalSendDotNet.Cli project provides discovery, send, receive, and
diagnostic commands for development and interoperability testing.
Documentation
The public API is intentionally version-independent. Protocol-specific DTOs,
routes, and serialization remain internal so a future protocol adapter can be
added without changing the LocalSendNode calling model.
License and attribution
LocalSendDotNet.Core is licensed under the
Apache License 2.0.
Attribution and the relationship to the official LocalSend project are recorded
in NOTICE.
| Product | Versions 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. |
-
net10.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.2.0-preview.5 | 85 | 8/21/2026 |
| 0.2.0-preview.4 | 65 | 8/18/2026 |
| 0.2.0-preview.3 | 78 | 8/16/2026 |
| 0.2.0-preview.2 | 67 | 8/12/2026 |