Keep proprietary/native voice and parser behavior absent from shim bodies.
Record all mapping decisions.
Validation
100% coverage for all four extension areas and their assemblies.
Build and document every extension crate without requiring native devices, CLR, or network access.
Compile representative RLV, parser, utility, Vivox, and WebRTC downstream calls.
Prerequisite
Stage 0 project setup is complete. Do not implement production behavior in this milestone.
Project constraints
Implement the public surface in native Rust only; no CLR hosting, FFI bridge, subprocess, RPC, or C# fallback.
Preserve recognizable API concepts while applying the documented Rust mapping rules.
Do not weaken parity requirements or add functional behavior outside this issue.
Update the API mapping, coverage report, public docs, and relevant handover status in the same change.
## Objective
Implement all callable signatures in the remaining extension assemblies.
## Deliverables
- Cover RLV messages/restrictions/providers/callbacks/services, LSL lexer/parser/generator types, Utilities helpers, Vivox protocol/session/manager types, and WebRTC signaling/device/session types.
- Map parser diagnostics, callback traits, voice events, blocking compatibility surfaces, and generic parser types deliberately.
- Keep proprietary/native voice and parser behavior absent from shim bodies.
- Record all mapping decisions.
## Validation
- 100% coverage for all four extension areas and their assemblies.
- Build and document every extension crate without requiring native devices, CLR, or network access.
- Compile representative RLV, parser, utility, Vivox, and WebRTC downstream calls.
## Prerequisite
Stage 0 project setup is complete. Do not implement production behavior in this milestone.
## Project constraints
- Implement the public surface in native Rust only; no CLR hosting, FFI bridge, subprocess, RPC, or C# fallback.
- Preserve recognizable API concepts while applying the documented Rust mapping rules.
- Do not weaken parity requirements or add functional behavior outside this issue.
- Update the API mapping, coverage report, public docs, and relevant handover status in the same change.
hugo
added this to the 02 - Full public API signature shim milestone 2026-08-08 08:11:55 +00:00
Implemented in commit 643762f. Generated complete callable failure-only Rust shims for LibreMetaverse.LslTools, LibreMetaverse.RLV, LibreMetaverse.Utilities, LibreMetaverse.Voice.Vivox, and LibreMetaverse.Voice.WebRTC: 271 types and 2,021 members. The workspace now covers all 13 catalog assemblies with 3,066 types and 30,789 members and zero pending type shells. Mapping decisions are recorded in RUST-MAPPING.tsv, including recursive parser ownership via Box, collision-safe field names, object-safe callback/event subscriptions, and project-owned cross-platform boundary types for external JSON, WebRTC, audio, immutable collection, encoding, socket, and Unicode signatures; no external member APIs or native/parser/device/network behavior were copied or implemented. Verified with mapping and shim regeneration checks, cargo fmt, cargo check --workspace --all-targets, cargo test --workspace --no-run, cargo clippy --workspace --all-targets --all-features -- -D warnings, cargo doc --workspace --no-deps, git diff --check, and 15 isolated compatibility tests including representative RLV, LSL parser, Utilities, Vivox, and WebRTC calls.
Implemented in commit 643762f. Generated complete callable failure-only Rust shims for LibreMetaverse.LslTools, LibreMetaverse.RLV, LibreMetaverse.Utilities, LibreMetaverse.Voice.Vivox, and LibreMetaverse.Voice.WebRTC: 271 types and 2,021 members. The workspace now covers all 13 catalog assemblies with 3,066 types and 30,789 members and zero pending type shells. Mapping decisions are recorded in RUST-MAPPING.tsv, including recursive parser ownership via Box, collision-safe field names, object-safe callback/event subscriptions, and project-owned cross-platform boundary types for external JSON, WebRTC, audio, immutable collection, encoding, socket, and Unicode signatures; no external member APIs or native/parser/device/network behavior were copied or implemented. Verified with mapping and shim regeneration checks, cargo fmt, cargo check --workspace --all-targets, cargo test --workspace --no-run, cargo clippy --workspace --all-targets --all-features -- -D warnings, cargo doc --workspace --no-deps, git diff --check, and 15 isolated compatibility tests including representative RLV, LSL parser, Utilities, Vivox, and WebRTC calls.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Objective
Implement all callable signatures in the remaining extension assemblies.
Deliverables
Validation
Prerequisite
Stage 0 project setup is complete. Do not implement production behavior in this milestone.
Project constraints
Implemented in commit
643762f. Generated complete callable failure-only Rust shims for LibreMetaverse.LslTools, LibreMetaverse.RLV, LibreMetaverse.Utilities, LibreMetaverse.Voice.Vivox, and LibreMetaverse.Voice.WebRTC: 271 types and 2,021 members. The workspace now covers all 13 catalog assemblies with 3,066 types and 30,789 members and zero pending type shells. Mapping decisions are recorded in RUST-MAPPING.tsv, including recursive parser ownership via Box, collision-safe field names, object-safe callback/event subscriptions, and project-owned cross-platform boundary types for external JSON, WebRTC, audio, immutable collection, encoding, socket, and Unicode signatures; no external member APIs or native/parser/device/network behavior were copied or implemented. Verified with mapping and shim regeneration checks, cargo fmt, cargo check --workspace --all-targets, cargo test --workspace --no-run, cargo clippy --workspace --all-targets --all-features -- -D warnings, cargo doc --workspace --no-deps, git diff --check, and 15 isolated compatibility tests including representative RLV, LSL parser, Utilities, Vivox, and WebRTC calls.