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
                    
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="OwlCore.Storage.NfsSharp" Version="0.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OwlCore.Storage.NfsSharp" Version="0.1.0" />
                    
Directory.Packages.props
<PackageReference Include="OwlCore.Storage.NfsSharp" />
                    
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 OwlCore.Storage.NfsSharp --version 0.1.0
                    
#r "nuget: OwlCore.Storage.NfsSharp, 0.1.0"
                    
#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 OwlCore.Storage.NfsSharp@0.1.0
                    
#: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=OwlCore.Storage.NfsSharp&version=0.1.0
                    
Install as a Cake Addin
#tool nuget:?package=OwlCore.Storage.NfsSharp&version=0.1.0
                    
Install as a Cake Tool

OwlCore.Storage.NfsSharp

NuGet NuGet Downloads CI License: MIT

An OwlCore.Storage-based library that provides a full-featured implementation for the NFS file system, built on top of NfsSharp.


Features

  • Full IModifiableFolder implementation — create, delete, enumerate, copy, and move files and folders over NFS
  • IFile with readable, writable, and read-write NfsStream access (fully seekable)
  • Fast-path for same-server moves — uses an atomic NFS RENAME RPC instead of copy+delete
  • Fast-path for local ↔ NFS transfers — uses NfsClient.UploadFileFromLocalAsync / DownloadFileToLocalAsync with parallel chunk I/O
  • Static GetFromNfsPathAsync / TryGetFromNfsPathAsync helpers on both NfsFile and NfsFolder
  • 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.