LocalSendDotNet.Core
0.2.0-preview.3
See the version list below for details.
dotnet add package LocalSendDotNet.Core --version 0.2.0-preview.3
NuGet\Install-Package LocalSendDotNet.Core -Version 0.2.0-preview.3
<PackageReference Include="LocalSendDotNet.Core" Version="0.2.0-preview.3" />
<PackageVersion Include="LocalSendDotNet.Core" Version="0.2.0-preview.3" />
<PackageReference Include="LocalSendDotNet.Core" />
paket add LocalSendDotNet.Core --version 0.2.0-preview.3
#r "nuget: LocalSendDotNet.Core, 0.2.0-preview.3"
#:package LocalSendDotNet.Core@0.2.0-preview.3
#addin nuget:?package=LocalSendDotNet.Core&version=0.2.0-preview.3&prerelease
#tool nuget:?package=LocalSendDotNet.Core&version=0.2.0-preview.3&prerelease
LocalSendDotNet
An experimental, UI-independent .NET 10 implementation of the LocalSend v2.2 protocol.
Current capabilities
- IPv4 multicast discovery and two-way registration
- HTTP or HTTPS with persisted RSA identity, mutual TLS and certificate fingerprint pinning
- File and text send/receive, partial acceptance, progress and cancellation
- Optional receiver PIN protection
- Safe streaming writes with path traversal protection and atomic publication
- Session timeouts, bounded concurrency, SHA-256 verification and explicit transfer cancellation
- Node lifecycle events, device expiry, trusted manual endpoints and stream-backed send items
- Folder enumeration with relative paths and common MIME type inference
- Diagnostic CLI for discovery and interoperability testing
Roadmap boundaries
The UI-ready v2 send/receive core is implemented. Browser sharing, IPv6 discovery and subnet scanning are later v2 extensions rather than UI blockers. Protocol v1 is legacy-only, transfer history belongs to the host application, and WebRTC work waits for a stable official v3 design.
Build
dotnet restore LocalSendDotNet.slnx
dotnet build LocalSendDotNet.slnx
dotnet test LocalSendDotNet.slnx
CLI
dotnet run --project src/LocalSendDotNet.Cli -- discover
dotnet run --project src/LocalSendDotNet.Cli -- listen --auto-accept
dotnet run --project src/LocalSendDotNet.Cli -- send --target "Device Alias" path/to/file
dotnet run --project src/LocalSendDotNet.Cli -- send-dir --target "Device Alias" --sha256 path/to/folder
dotnet run --project src/LocalSendDotNet.Cli -- send-text --target "Device Alias" "hello"
Core API
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);
}
See docs/core-api.md for lifecycle, discovery, send/receive, cancellation and manual-address guidance.
Windows Native AOT publishing and optional MSIX packaging are documented in docs/packaging.md.
Tag-driven Native AOT and signed MSIX GitHub Releases are documented in docs/app-release-ci.md.
The tag-gated nuget.org release process for LocalSendDotNet.Core is documented
in docs/nuget-publishing.md.
samples/LocalSendDotNet.Sample references the generated NuGet package rather than the source project. It is built in CI after packing to verify the consumer experience.
Official-client evidence and the remaining manual scenarios are tracked in docs/interop-matrix.md.
The library requires the .NET 10 and ASP.NET Core 10 shared frameworks for framework-dependent deployments. Self-contained applications include these dependencies automatically.
License
LocalSendDotNet is licensed under Apache-2.0. Attribution and the relationship to the separate official LocalSend project are documented 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 | 88 | 8/21/2026 |
| 0.2.0-preview.4 | 66 | 8/18/2026 |
| 0.2.0-preview.3 | 79 | 8/16/2026 |
| 0.2.0-preview.2 | 73 | 8/12/2026 |