SimpleShareLibrary 0.2.0
dotnet add package SimpleShareLibrary --version 0.2.0
NuGet\Install-Package SimpleShareLibrary -Version 0.2.0
<PackageReference Include="SimpleShareLibrary" Version="0.2.0" />
<PackageVersion Include="SimpleShareLibrary" Version="0.2.0" />
<PackageReference Include="SimpleShareLibrary" />
paket add SimpleShareLibrary --version 0.2.0
#r "nuget: SimpleShareLibrary, 0.2.0"
#:package SimpleShareLibrary@0.2.0
#addin nuget:?package=SimpleShareLibrary&version=0.2.0
#tool nuget:?package=SimpleShareLibrary&version=0.2.0
SimpleShareLibrary
A simplified, protocol-agnostic .NET Standard 2.0 wrapper for remote file share operations. Currently supports SMB via SMBLibrary by Tal Aloni.
Why?
SMBLibrary is a powerful, pure .NET SMB client/server implementation supporting SMB 1.0 through 3.1.1. However, its low-level API requires significant boilerplate for common operations. SimpleShareLibrary provides an easy-to-use API for everyday file operations on remote shares.
Before (SMBLibrary):
SMB2Client client = new SMB2Client();
bool isConnected = client.Connect(IPAddress.Parse("192.168.1.11"), SMBTransportType.DirectTCPTransport);
if (isConnected)
{
NTStatus status = client.Login(String.Empty, "user", "pass");
if (status == NTStatus.STATUS_SUCCESS)
{
ISMBFileStore fileStore = client.TreeConnect("Share", out status);
if (status == NTStatus.STATUS_SUCCESS)
{
object fileHandle;
FileStatus fileStatus;
status = fileStore.CreateFile(out fileHandle, out fileStatus, "file.txt",
AccessMask.GENERIC_READ | AccessMask.SYNCHRONIZE, FileAttributes.Normal,
ShareAccess.Read, CreateDisposition.FILE_OPEN,
CreateOptions.FILE_NON_DIRECTORY_FILE | CreateOptions.FILE_SYNCHRONOUS_IO_ALERT, null);
// ... read loop, close, disconnect, logoff ...
}
}
}
After (SimpleShareLibrary):
using (var smb = new SmbClient("192.168.1.11", "Share", "user", "pass"))
{
byte[] data = smb.ReadFile("file.txt");
}
Documentation
See the docs/ directory for detailed documentation:
- Getting Started — installation, first connection, basic usage
- API Reference — full interface and options documentation
- Architecture — how the library is structured, provider model
- Contributing — how to contribute, adding new protocol providers
Installation
dotnet add package SimpleShareLibrary
Contributing
Contributions are welcome! The library is designed with a protocol-agnostic provider model — IShareClientFactory, IShareClient, and IShare are generic interfaces that any file sharing protocol can implement. Currently only SMB is supported, but adding providers for other protocols (NFS, SFTP, WebDAV, etc.) is straightforward.
See docs/contributing.md for details on how to get started.
License
This project is licensed under the MIT License.
Third-Party Dependencies
This library uses SMBLibrary by Tal Aloni (@TalAloni) as a runtime NuGet dependency, licensed under LGPL-3.0-or-later. SMBLibrary is not embedded or merged into this assembly — it remains a separate, replaceable component as required by the LGPL.
All core SMB protocol implementation credit belongs to Tal Aloni and the SMBLibrary contributors.
Disclaimer
This project is not affiliated with, endorsed by, or sponsored by Tal Aloni or the SMBLibrary project.
This software is provided "as is", without warranty of any kind. See DISCLAIMER.md for full details (English and German).
Acknowledgments
Built on top of SMBLibrary — a powerful, pure .NET SMB client/server implementation. Without SMBLibrary, this project would not exist.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Polly (>= 7.2.4)
- SMBLibrary (>= 1.5.6)
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 | 527 | 3/21/2026 |
| 0.1.1-alpha | 115 | 3/13/2026 |
| 0.1.0-alpha | 114 | 3/13/2026 |
First validated release. Enable nullable reference types, add documentation, automated CI/CD publishing.