NTar 1.0.1
dotnet add package NTar --version 1.0.1
NuGet\Install-Package NTar -Version 1.0.1
<PackageReference Include="NTar" Version="1.0.1" />
<PackageVersion Include="NTar" Version="1.0.1" />
<PackageReference Include="NTar" />
paket add NTar --version 1.0.1
#r "nuget: NTar, 1.0.1"
#:package NTar@1.0.1
#addin nuget:?package=NTar&version=1.0.1
#tool nuget:?package=NTar&version=1.0.1
NTar
NTar is a small .NET library for serializing/deserializing a tar file.
It exposes simple APIs to create TAR archives from directories or programmatic entries and to read/extract TAR archives from streams.
Key highlights
- Small, focused: reading and writing TAR without heavyweight dependencies.
- Supports a wide range of .NET targets (see Supported targets).
- Simple streaming APIs for programmatic creation and extraction.
Supported targets
The library provides builds and packages for multiple targets including (but not limited to):
- .NET Framework 4.5 and later
- .NET 5.0 and later
- .NET Standard 2.0 and later
Installation
Install the package from NuGet:
dotnet add package NTar
Usage examples
Create a .tar file from a directory:
// Creates "test.tar" (next to the input directory)
"C:\path\to\folder".TarTo("test.tar");
Create a tar stream from programmatic entries and write to disk:
var entries = new List<TarEntryStream>();
// populate TarEntryStream objects (MemoryStream wrappers) and set FileName, LastModifiedTime, IsDirectory, etc.
using Stream tarStream = entries.Tar();
using var outFile = File.Create("out.tar");
tarStream.CopyTo(outFile);
Enumerate entries from a tar stream:
foreach (var entry in myTarStream.Untar())
{
Console.WriteLine(entry.FileName);
// entry is a TarEntryStream-like object exposing FileName, LastModifiedTime, Length, and a Stream
}
Extract a tar stream to a directory:
myTarStream.UntarTo("./output");
API notes
- Tar creation helpers are available in
TarHelper.Tar.cs(e.g.string.TarTo(string outputFile)andIEnumerable<TarEntryStream>.Tar()returning a seekableStream). - Untar / extraction helpers are provided in
TarHelper.Untar.csas stream extension methods:Stream.Untar()andStream.UntarTo(string outputDirectory).
License
This project is licensed under the BSD-Clause 2 license.
Acknowledgements
This project builds on work by Alexandre Mutel (aka xoofx).
If you need a different TAR implementation with more features, consider alternatives such as mfow/tar-cs.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. 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 is compatible. 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 is compatible. |
| .NET Framework | net45 is compatible. net451 was computed. net452 is compatible. net46 was computed. net461 was computed. net462 is compatible. net463 was computed. net47 is compatible. net471 is compatible. net472 is compatible. net48 is compatible. net481 is compatible. |
| 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. |
-
.NETFramework 4.5
- No dependencies.
-
.NETFramework 4.5.2
- No dependencies.
-
.NETFramework 4.6.2
- No dependencies.
-
.NETFramework 4.7
- No dependencies.
-
.NETFramework 4.7.1
- No dependencies.
-
.NETFramework 4.7.2
- No dependencies.
-
.NETFramework 4.8
- No dependencies.
-
.NETFramework 4.8.1
- No dependencies.
-
.NETStandard 2.0
- No dependencies.
-
.NETStandard 2.1
- No dependencies.
-
net10.0
- No dependencies.
-
net5.0
- No dependencies.
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
-
net8.0
- No dependencies.
-
net9.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.