Skip to content

cinderblocks/libremetaverse

Repository files navigation

 _ _ _            __  __ ___ _____ ___   _____ ___  ___ ___ 
| (_) |__ _ _ ___|  \/  | __|_   _/_\ \ / / __| _ \/ __| __|
| | | '_ \ '_/ -_) |\/| | _|  | |/ _ \ V /| _||   /\__ \ _| 
|_|_|_.__/_| \___|_|  |_|___| |_/_/ \_\_/ |___|_|_\|___/___|

LibreMetaverse

LibreMetaverse is a fork of libOpenMetaverse which in turn was a fork of libSecondLife, a library for developing Second Life-compatible virtual world clients. LibreMetaverse returns the focus to up-to-date Second Life and OpenSim compatibility with an eye to performance, multi-threading, and memory management.

The canonical source for LibreMetaverse can be found at: https://github.com/cinderblocks/libremetaverse

Simple installation procedure

Windows

The dotnet utility is cross-platform so compilation is no different than on Linux/macOS. You may, however, opt to use Visual Studio as you would any other .NET application.

Linux/macOS

  • Make sure you have at least dotnet installed, with a valid SDK and runtime of at least .NET5 available!

  • This update includes a solution file to skip GUI applications for non-Windows platforms. Use LibreMetaverse.ReleaseNoGUI.sln instead

  • From the root, run dotnet restore LibreMetaverse.ReleaseNoGUI.sln. You should get some errors regarding missing Windows libraries; that's ok, you can ignore those, they're to be expected since Linux/macOS do not include such libraries. Some test applications are Windows-only.
    If all goes well, you should now have all dependent packages properly installed.

  • From the root, run dotnet msbuild LibreMetaverse.ReleaseNoGUI.sln, and enjoy the superfast Roslyn compiler at work 😄 It should finish after a few minutes, depending on the speed of your machine.

  • Your binaries will be under ../bin/net6.0 or ../bin/net7.0 (there might be a few more directories under ../bin), depending on what runtimes you have installed on your system. Make sure you cd to the correct directory depending on the runtime you have, and then search for all your binaries there: they should be normal-looking executable files (with the x attribute set) and having the name of the appropriate test application (e.g. TestClient for the interactive testing tool).

  • Unlike OpenSimulator and LibOpenMetaverse, you don't need to launch the binaries with Mono, they're directly executable; the dotnet chain already embeds the small runtime that allows .NET apps to run natively on whatever operating system you've got.

GUI support under Linux/macOS

LibreMetaverse.GUI is not available on Linux/macOS due to Microsoft's lack of support for GDI/WinForms on non-Windows platforms. They may work using Mono's implemention and can always be emulated using a product like Wine.

The GUI library is being phased out and eventually being replaced by a more cross-platform framework like Avalonia or MAUI.

LibreMetaverse NuGet-Release
NuGet Downloads
Build status
Test status
Codacy Badge
.NET
CodeQL
BSD Licensed
Commits per month
ZEC BTC