OwlCore.Storage.NfsSharp
0.1.0
dotnet add package OwlCore.Storage.NfsSharp --version 0.1.0
NuGet\Install-Package OwlCore.Storage.NfsSharp -Version 0.1.0
<PackageReference Include="OwlCore.Storage.NfsSharp" Version="0.1.0" />
<PackageVersion Include="OwlCore.Storage.NfsSharp" Version="0.1.0" />
<PackageReference Include="OwlCore.Storage.NfsSharp" />
paket add OwlCore.Storage.NfsSharp --version 0.1.0
#r "nuget: OwlCore.Storage.NfsSharp, 0.1.0"
#:package OwlCore.Storage.NfsSharp@0.1.0
#addin nuget:?package=OwlCore.Storage.NfsSharp&version=0.1.0
#tool nuget:?package=OwlCore.Storage.NfsSharp&version=0.1.0
OwlCore.Storage.NfsSharp
An OwlCore.Storage-based library that provides a full-featured implementation for the NFS file system, built on top of NfsSharp.
Features
- Full
IModifiableFolderimplementation — create, delete, enumerate, copy, and move files and folders over NFS IFilewith readable, writable, and read-writeNfsStreamaccess (fully seekable)- Fast-path for same-server moves — uses an atomic NFS
RENAMERPC instead of copy+delete - Fast-path for local ↔ NFS transfers — uses
NfsClient.UploadFileFromLocalAsync/DownloadFileToLocalAsyncwith parallel chunk I/O - Static
GetFromNfsPathAsync/TryGetFromNfsPathAsynchelpers on bothNfsFileandNfsFolder - Full XML documentation on every public member
- Multi-target: net10.0, net9.0, net8.0, and netstandard2.0
Installation
dotnet add package OwlCore.Storage.NfsSharp
Or search for OwlCore.Storage.NfsSharp in the NuGet Package Manager UI in Visual Studio.
Usage
using NfsSharp;
using OwlCore.Storage.NfsSharp;
// Connect to the NFS server and mount an export.
await using var nfs = new NfsClient("nfs.example.com", "/exports/data");
await nfs.ConnectAsync();
// Get the root folder of the mount.
var root = await NfsFolder.GetFromNfsPathAsync(nfs, "/");
// List files and sub-folders.
await foreach (var item in root.GetItemsAsync())
Console.WriteLine(item.Name);
// Create a file and write to it.
var file = await root.CreateFileAsync("hello.txt");
await using var stream = await file.OpenStreamAsync(FileAccess.Write);
await using var writer = new StreamWriter(stream);
await writer.WriteLineAsync("Hello from OwlCore.Storage.NfsSharp!");
await stream.FlushAsync();
// Open an existing file for reading.
var existing = await NfsFile.GetFromNfsPathAsync(nfs, "/reports/q4.csv");
await using var readStream = await existing.OpenStreamAsync(FileAccess.Read);
using var reader = new StreamReader(readStream);
Console.WriteLine(await reader.ReadToEndAsync());
Running Tests
In order to run tests, create a .runsettings file in the tests/OwlCore.Storage.NfsSharp.Tests project with the following content:
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<RunConfiguration>
<EnvironmentVariables>
<NFS_SERVER>nfs.example.com</NFS_SERVER>
<NFS_EXPORT_PATH>/exports/data</NFS_EXPORT_PATH>
</EnvironmentVariables>
</RunConfiguration>
</RunSettings>
Set the properties with their respective values, then run the tests. Note that tests require an NFS server with read and write permissions on the specified export.
Versioning
Version numbering follows the Semantic Versioning approach. However, if the major version is 0, the code is considered alpha and breaking changes may occur as a minor update.
License
All OwlCore code is licensed under the MIT License. See the LICENSE file for more details.
| 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 is compatible. 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 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 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. |
| .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
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.3)
- Microsoft.Bcl.Memory (>= 10.0.4)
- NfsSharp (>= 0.1.3)
- OwlCore.Storage (>= 0.15.0)
- System.Memory (>= 4.6.3)
-
net10.0
- NfsSharp (>= 0.1.3)
- OwlCore.Storage (>= 0.15.0)
-
net8.0
- NfsSharp (>= 0.1.3)
- OwlCore.Storage (>= 0.15.0)
-
net9.0
- NfsSharp (>= 0.1.3)
- OwlCore.Storage (>= 0.15.0)
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.1.0 | 61 | 4/8/2026 |
[0.1.0]
Initial release with full NFS filesystem implementation via OwlCore.Storage abstractions.