44 lines
1.7 KiB
Markdown
44 lines
1.7 KiB
Markdown
# Starworld (StardustXR + Overte client)
|
|
|
|
## Rust bridge (optional)
|
|
This project can load a Rust bridge shared library exposing a C ABI to the StardustXR client. Build it with:
|
|
|
|
```bash
|
|
cd bridge
|
|
cargo build
|
|
```
|
|
|
|
This produces `bridge/target/debug/libstardust_bridge.so`. The app will try to load it automatically at startup. You can also set an explicit path:
|
|
|
|
```bash
|
|
export STARWORLD_BRIDGE_PATH=./bridge/target/debug/libstardust_bridge.so
|
|
```
|
|
|
|
If the bridge is not present, the app falls back to a stub and (previously) attempted raw sockets; with the bridge present it will initialize via the official client crates.
|
|
|
|
## Overte
|
|
Overte connectivity is optional; if unreachable, the client runs in offline mode and logs a warning.
|
|
|
|
## CLI
|
|
- `--socket=/path/to.sock` (legacy attempt)
|
|
- `--abstract=name` (legacy abstract socket attempt)
|
|
|
|
Prefer using the Rust bridge.
|
|
|
|
## Vendoring StardustXR crates (recommended for deep integration)
|
|
For fuller control and inspection of the StardustXR client pipeline, clone the `asteroids` and `core` (fusion) repositories into `third_party/` and switch the bridge's `Cargo.toml` to `path` dependencies. See `third_party/README.md` for details.
|
|
|
|
Benefits:
|
|
- Deterministic builds (no moving `dev` branch)
|
|
- Ability to patch or instrument crate internals without forking remote
|
|
- Easier to expose new C ABI functions (input, health queries, node data extraction)
|
|
|
|
After vendoring:
|
|
```bash
|
|
sed -i 's/git = .*/path = "..\/third_party\/asteroids"/' bridge/Cargo.toml
|
|
sed -i 's/git = .*/path = "..\/third_party\/core"/' bridge/Cargo.toml
|
|
cargo build -p stardust_bridge
|
|
```
|
|
|
|
If you do not vendor, please provide commit SHAs to pin; I can update `Cargo.toml` accordingly.
|