1.8 KiB
MetaCrate
MetaCrate is a test-driven, clean native Rust reimplementation of LibreMetaverse. LibreMetaverse is a behavioral and API reference only: the finished project must not load, host, bind to, invoke, or ship the .NET implementation. The current stage is a compiling structural shell: crate boundaries mirror the .NET library projects, public C# type names have Rust declarations, every upstream NUnit case has a traceable placeholder, and every sample/tool project has a Rust binary target. Types, StructuredData, Imaging, PrimMesher, both rendering adapters, and the main assembly's packet/message/asset/primitive wire-data and core runtime/networking slices now have complete callable, failure-only signatures; the remaining avatar/world manager and extension slices plus semantic Rust test translations are still required before the public API shim is complete.
The source snapshot, compatibility rules, dependency research, and ordered implementation plan are in RUSTREWRITE.md.
The authoritative compiled .NET surface is checked in as
api/public-api.json. Every type and member has a
reviewed Rust destination in api/RUST-TYPES.tsv and
api/RUST-MAPPING.tsv; api/README.md
documents deterministic regeneration and validation.
All API crates expose the same typed Error for fallible unimplemented members;
infallible shims use libremetaverse_types::unimplemented_api! so placeholders
cannot look like successful behavior.
cargo build --workspace
cargo test --workspace --no-run
python3 tools/generate_rust_mapping.py --check
python3 tools/generate_api_shims.py --check
Running cargo test --workspace is intentionally red during the shim stage.