LocalSendDotNet.Core 0.2.0-preview.3

This is a prerelease version of LocalSendDotNet.Core.
There is a newer prerelease version of this package available.
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
                    
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="LocalSendDotNet.Core" Version="0.2.0-preview.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="LocalSendDotNet.Core" Version="0.2.0-preview.3" />
                    
Directory.Packages.props
<PackageReference Include="LocalSendDotNet.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 LocalSendDotNet.Core --version 0.2.0-preview.3
                    
#r "nuget: LocalSendDotNet.Core, 0.2.0-preview.3"
                    
#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 LocalSendDotNet.Core@0.2.0-preview.3
                    
#: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=LocalSendDotNet.Core&version=0.2.0-preview.3&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=LocalSendDotNet.Core&version=0.2.0-preview.3&prerelease
                    
Install as a Cake Tool

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

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