61 lines
4.4 KiB
Markdown
61 lines
4.4 KiB
Markdown
```
|
|
_ _ _ __ __ ___ _____ ___ _____ ___ ___ ___
|
|
| (_) |__ _ _ ___| \/ | __|_ _/_\ \ / / __| _ \/ __| __|
|
|
| | | '_ \ '_/ -_) |\/| | _| | |/ _ \ 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 .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 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.
|
|
|
|
|
|
[](https://www.nuget.org/packages/LibreMetaverse/)
|
|
[](https://www.nuget.org/packages/LibreMetaverse/)
|
|
[](https://ci.appveyor.com/project/cinderblocks57647/libremetaverse-ksbcr)
|
|
[](https://ci.appveyor.com/project/cinderblocks57647/libremetaverse-ksbcr)
|
|
[](https://www.codacy.com/gh/cinderblocks/libremetaverse/dashboard?utm_source=github.com&utm_medium=referral&utm_content=cinderblocks/libremetaverse&utm_campaign=Badge_Grade)
|
|
[](https://github.com/cinderblocks/libremetaverse/actions/workflows/dotnet.yml)
|
|
[](https://github.com/cinderblocks/libremetaverse/actions/workflows/codeql-analysis.yml)
|
|
[](https://github.com/cinderblocks/libremetaverse/blob/master/LICENSE.txt)
|
|
[](https://www.github.com/cinderblocks/libremetaverse/)
|
|
[](https://keybase.io/cinder) [](https://keybase.io/cinder)
|