LibreMetaverse.Types
3.2.0
Prefix Reserved
dotnet add package LibreMetaverse.Types --version 3.2.0
NuGet\Install-Package LibreMetaverse.Types -Version 3.2.0
<PackageReference Include="LibreMetaverse.Types" Version="3.2.0" />
<PackageVersion Include="LibreMetaverse.Types" Version="3.2.0" />
<PackageReference Include="LibreMetaverse.Types" />
paket add LibreMetaverse.Types --version 3.2.0
#r "nuget: LibreMetaverse.Types, 3.2.0"
#:package LibreMetaverse.Types@3.2.0
#addin nuget:?package=LibreMetaverse.Types&version=3.2.0
#tool nuget:?package=LibreMetaverse.Types&version=3.2.0
▗▖ ▄ ▗▖ ▄▄▄ ▗▞▀▚▖▗▖ ▗▖▗▞▀▚▖ ■ ▗▞▀▜▌▄ ▄ ▗▞▀▚▖ ▄▄▄ ▄▄▄ ▗▞▀▚▖
▐▌ ▄ ▐▌ █ ▐▛▀▀▘▐▛▚▞▜▌▐▛▀▀▘▗▄▟▙▄▖▝▚▄▟▌█ █ ▐▛▀▀▘█ ▀▄▄ ▐▛▀▀▘
▐▌ █ ▐▛▀▚▖█ ▝▚▄▄▖▐▌ ▐▌▝▚▄▄▖ ▐▌ ▀▄▀ ▝▚▄▄▖█ ▄▄▄▀ ▝▚▄▄▖
▐▙▄▄▖█ ▐▙▄▞▘ ▐▌ ▐▌ ▐▌
▐▌
LibreMetaverse.Types
The basic types every other LibreMetaverse package is written in: the identifier, vector, quaternion and color types of the virtual-world protocol, the enums that name the things in it, and a small kit of caches and locks. It is the bottom of the stack and has no dependencies of its own.
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
- Values:
UUID,Vector2,Vector3,Vector3d,Vector4,Quaternion,Matrix4,Color4,Ray,CoordinateFrame. - Names for protocol values:
AssetType,InventoryType,FolderType,WearableType,AttachmentPoint,PCode,PrimFlags,PrimType,SculptType,PathCurve,ProfileCurve,FaceType,SaleType,ClickAction,PhysicsShapeTypeand the other enums a viewer and a simulator share. - Helpers:
Utils(conversions, byte packing, the Unix epoch),CRC32, andSlurlParser, which reads and buildssecondlife://location links and/app/commands. - Caches:
CacheDictionarywith LRU or MRU removal,ExpiringCache,DoubleDictionary,MultiValueDictionary,ObservableDictionary, andTokenBucketfor rate limits. - Threading (
LibreMetaverse.Threading): optimistic and spin reader/writer locks, managed events and semaphores, andWaitHandleAsyncFactoryfor awaiting wait handles.
Example
using LibreMetaverse;
UUID id = UUID.Random();
Vector3 position = new Vector3(128, 128, 25);
Quaternion turn = Quaternion.CreateFromAxisAngle(Vector3.UnitZ, (float)(Math.PI / 2));
Vector3 turned = position * turn; // a quarter turn about the vertical axis
var slurl = new SlurlParser("secondlife://Ahern/128/64/25");
Console.WriteLine($"{slurl.Sim} at {slurl.X}, {slurl.Y}, {slurl.Z}");
Use it when
You are writing a tool that touches viewer data (a log analyzer, an asset converter, a map tool) and wants UUID and Vector3 without taking a networking library with them. If you also need to read or write LLSD, add LibreMetaverse.StructuredData; for the asset formats, LibreMetaverse.Assets.
Depends on
.NET Standard 2.1, .NET Framework 4.8.1, and .NET 8, 9 and 10. On .NET Framework it uses System.Buffers and System.Memory; nowhere else does it depend on anything.
Install
dotnet add package LibreMetaverse.Types
More
- Source, issues and discussion: https://github.com/cinderblocks/libremetaverse
- Moving from 3.1: the migration guide
- License: BSD-3-Clause
| 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 | 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. |
-
.NETFramework 4.8.1
- System.Buffers (>= 4.6.1)
- System.Memory (>= 4.6.3)
-
.NETStandard 2.1
- No dependencies.
-
net10.0
- No dependencies.
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages (14)
Showing the top 5 NuGet packages that depend on LibreMetaverse.Types:
| Package | Downloads |
|---|---|
|
LibreMetaverse.StructuredData
Structured data serialization library for LibreMetaverse, providing parsers and writers for LLSD (Linden Lab Structured Data) in binary, XML, and JSON formats. |
|
|
LibreMetaverse
LibreMetaverse is a .NET client library for connecting to and interacting with Second Life, OpenSimulator, and compatible virtual world servers. Provides networking, inventory, avatar, asset, and world management APIs. |
|
|
LibreMetaverse.Rendering.Meshmerizer
Advanced mesh rendering library for LibreMetaverse that uses the Meshmerizer engine to generate renderable geometry from Second Life prims, sculpts, and mesh assets. |
|
|
LibreMetaverse.Utilities
Helpers on top of the LibreMetaverse client for bots and unattended agents: a persistent login that retries through grid outages, a monitor that keeps an avatar in a region, and typed-out chat with the typing animation. |
|
|
LibreMetaverse.Rendering.Simple
A stand-in IRendering for LibreMetaverse that returns a unit cube for every prim, sculpt and mesh. For tests and for code that needs a renderer without caring about the shape; use LibreMetaverse.Rendering.MeshFoundry for real geometry. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.2.0 | 235 | 10/13/2026 |
| 3.1.8 | 579 | 10/6/2026 |
| 3.1.7 | 376 | 10/4/2026 |
| 3.1.6 | 3,386 | 9/14/2026 |
| 3.1.5 | 1,118 | 9/3/2026 |
| 3.1.4 | 419 | 8/26/2026 |
| 3.1.3 | 2,137 | 7/24/2026 |
| 3.1.2 | 440 | 7/21/2026 |
| 3.1.1 | 590 | 7/14/2026 |
| 3.1.0 | 641 | 7/11/2026 |
| 3.0.4 | 515 | 7/9/2026 |
| 3.0.3 | 592 | 7/3/2026 |
| 3.0.2 | 417 | 6/29/2026 |
| 3.0.1 | 425 | 6/27/2026 |
| 3.0.0 | 684 | 6/23/2026 |
| 2.6.10 | 750 | 6/20/2026 |
| 2.6.9 | 577 | 6/8/2026 |
| 2.6.8 | 490 | 6/7/2026 |
| 2.6.7 | 709 | 5/14/2026 |
| 2.6.6 | 783 | 4/12/2026 |