Files
Starworld/README.md

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.