API shims: RLV, LSL tools, utilities, and voice extensions #11

Closed
opened 2026-08-08 08:11:55 +00:00 by hugo · 1 comment
Owner

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.
## 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
hugo added the enhancement label 2026-08-08 08:11:55 +00:00
Author
Owner

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.
hugo closed this issue 2026-08-08 10:59:15 +00:00
Sign in to join this conversation.