_ _ _ __ __ ___ _____ ___ _____ ___ ___ ___
| (_) |__ _ _ ___| \/ | __|_ _/_\ \ / / __| _ \/ __| __|
| | | '_ \ '_/ -_) |\/| | _| | |/ _ \ V /| _|| /\__ \ _|
|_|_|_.__/_| \___|_| |_|___| |_/_/ \_\_/ |___|_|_\|___/___|
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
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.
-
Make sure you have at least
dotnet
installed, with a valid SDK and runtime of at least .NET6 available! -
From the root, run
dotnet restore LibreMetaverse.Release.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.Release.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 youcd
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 thex
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.
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.