LibreMetaverse allows your code to read and work with data send across a SecondLife, Halcyon, OpenSimulator, or related connection.
$ dotnet add package 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
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/net8.0 or ../bin/net9.0 (there might be a few more directories under ../bin),
depending on what runtimes you have installed on your system. Make sure you 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 attribute set) and having the name
of the appropriate test application (e.g. for the interactive testing tool).
cdxTestClientUnlike 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.