LibreMetaverse.Archiving 3.2.0

Prefix Reserved
dotnet add package LibreMetaverse.Archiving --version 3.2.0
                    
NuGet\Install-Package LibreMetaverse.Archiving -Version 3.2.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="LibreMetaverse.Archiving" Version="3.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="LibreMetaverse.Archiving" Version="3.2.0" />
                    
Directory.Packages.props
<PackageReference Include="LibreMetaverse.Archiving" />
                    
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 LibreMetaverse.Archiving --version 3.2.0
                    
#r "nuget: LibreMetaverse.Archiving, 3.2.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 LibreMetaverse.Archiving@3.2.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=LibreMetaverse.Archiving&version=3.2.0
                    
Install as a Cake Addin
#tool nuget:?package=LibreMetaverse.Archiving&version=3.2.0
                    
Install as a Cake Tool
▗▖   ▄ ▗▖    ▄▄▄ ▗▞▀▚▖▗▖  ▗▖▗▞▀▚▖   ■  ▗▞▀▜▌▄   ▄ ▗▞▀▚▖ ▄▄▄ ▄▄▄ ▗▞▀▚▖
▐▌   ▄ ▐▌   █    ▐▛▀▀▘▐▛▚▞▜▌▐▛▀▀▘▗▄▟▙▄▖▝▚▄▟▌█   █ ▐▛▀▀▘█   ▀▄▄  ▐▛▀▀▘
▐▌   █ ▐▛▀▚▖█    ▝▚▄▄▖▐▌  ▐▌▝▚▄▄▖  ▐▌        ▀▄▀  ▝▚▄▄▖█   ▄▄▄▀ ▝▚▄▄▖
▐▙▄▄▖█ ▐▙▄▞▘          ▐▌  ▐▌       ▐▌                                
                                   ▐▌                                

LibreMetaverse.Archiving

OpenSim region archives. An OAR file is a gzipped tar holding a region's objects, terrain, parcels, settings and the assets they use; this package unpacks them and packs them, and reads and writes the tar format underneath. It is how you move a whole region between OpenSim installations, or take one apart to look at it.

  [Archiving] · Utilities · Voice.Vivox · Voice.WebRTC
      │  built on the client
  LibreMetaverse   the client: login, managers, inventory
      │
  Transport        UDP socket, reliable circuit, throttle
      │
  Protocol         packets and capability messages
      │
  Assets           the offline data model
      ├── ModelFormats · Rendering.MeshFoundry · Rendering.Simple
      │
  StructuredData · Imaging.Abstractions
      │
  Types            UUID, vectors, quaternions, colors

  on their own: PrimMesher · Imaging.Skia · RLV · LslTools

A name in brackets is this package. Packages use the ones beneath them; the Depends on section below is exact.

What is in it

  • OarFile: UnpackageArchive reads an archive and calls you back for each asset, for the terrain, for each linkset (an AssetPrim) and for the region settings. PackageArchive writes one from a directory. SaveTerrain, SaveParcels, SaveRegionSettings, SavePrimsAsync and SaveAssetsAsync fill that directory from a simulator you are connected to.
  • ArchiveInfo: the archive's archive.xml control file. It records the format version, when it was made, the region size (so a megaregion round-trips) and whether assets are included. Archives are written as version 0.8, the layout OpenSim has written since 2012. Older archives, which have no control file or an older one, still load, and one from a newer OpenSim than the library knows is read as 0.8 and flagged through IsNewerThanSupported.
  • TarArchiveReader and TarArchiveWriter: plain tar entry by entry, for archives that are not OARs.
  • RegionSettings and ArchiveConstants: the settings structure and the paths and file-name conventions inside an archive.

Example

using LibreMetaverse.Assets;

ArchiveInfo? info = OarFile.ReadArchiveInfo("region.oar");
Console.WriteLine(info == null ? "no archive.xml" : $"version {info.MajorVersion}.{info.MinorVersion}, {info.SizeX}x{info.SizeY}");

OarFile.UnpackageArchive("region.oar",
    (asset, read, total) => Console.WriteLine($"{asset.AssetType} {asset.AssetID}"),
    (terrain, read, total) => Console.WriteLine($"terrain {terrain.GetLength(0)}x{terrain.GetLength(1)}"),
    (linkset, read, total) => Console.WriteLine($"{linkset.Parent?.Name}"),
    (name, settings) => Console.WriteLine($"settings of {name}"));

Reading needs no connection. Saving a region from a live simulator uses the GridClient of the LibreMetaverse package.

Use it when

You are building region backup, restore or conversion tools, inspecting an archive from the web, or preparing content for an OpenSim region. The archive types are in the LibreMetaverse.Assets namespace, as they were when they were part of the main package.

Depends on

LibreMetaverse (for saving from a simulator) and LibreMetaverse.Types. It targets .NET Standard 2.1, .NET Framework 4.8.1, and .NET 8, 9 and 10.

Install

dotnet add package LibreMetaverse.Archiving

More

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 netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
.NET Framework net481 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen 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
3.2.0 42 10/13/2026