Complete Rust API and migration documentation (#102)
Some checks failed
Native code generation / deterministic (push) Failing after 2m5s
Concurrency and resource soak audit / soak (push) Failing after 6m22s
Documentation / documentation (push) Failing after 1m25s
Imaging and meshing gate / native (push) Failing after 2m47s
JPEG 2000 feature / linux (push) Successful in 3m54s
Release platform and feature matrix / audit (push) Successful in 37s
Native Rust workspace compile / compile (push) Failing after 1m14s
Skia feature / linux (push) Successful in 30m46s
Dependency and supply-chain audit / audit (push) Failing after 8m56s
Release platform and feature matrix / matrix (false, linux-stable-minimal, x86_64-unknown-linux-gnu, stable) (push) Failing after 9m16s
Release platform and feature matrix / matrix (false, macos-stable-portable, x86_64-apple-darwin, stable) (push) Failing after 1m20s
Release platform and feature matrix / matrix (false, windows-stable-portable, x86_64-pc-windows-gnu, stable) (push) Failing after 1m18s
Release platform and feature matrix / matrix (true, linux-stable-default, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-stable-features, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-stable-release-surface, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-msrv-portable, x86_64-unknown-linux-gnu, 1.96.0) (push) Has been cancelled

This commit is contained in:
2026-08-12 00:24:06 +00:00
parent 3db144da63
commit 5eb3f01122
37 changed files with 133519 additions and 48 deletions

View File

@@ -1,20 +1,23 @@
# MetaCrate
The [Rust API and C# migration guide](docs/rust-api-guide.md) explains crate
selection, ownership, async cancellation, errors, events, native prerequisites,
and credential-safe OpenSim operation. The generated
[documentation coverage report](api/DOCUMENTATION-COVERAGE.md) ties the public
Rust surface back to the pinned C# type and member mappings.
MetaCrate is a test-driven, clean native Rust reimplementation of
[LibreMetaverse](https://github.com/cinderblocks/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
invocation has a traceable catalog entry, and every sample/tool project has a
Rust binary target. Types, StructuredData, Imaging, PrimMesher, the MeshFoundry rendering adapter, and
the main assembly's packet/message/asset/primitive wire-data, core
runtime/networking, avatar-facing manager, world/social/service manager, RLV,
LSL tools, Utilities, Vivox, and WebRTC slices now have complete callable,
failure-only signatures. The independent downstream fixture compiles every
cataloged type and member with zero exclusions, and all 1,289 NUnit invocations
now have reviewed Rust parity cases. Production behavior implementation is the
next stage.
host, bind to, invoke, or ship the .NET implementation. The project is in
release hardening: crate boundaries mirror the .NET libraries, every mapped
public type and member has a documented native Rust destination, and every
sample/tool project has a tested Rust binary target. Types, structured data,
imaging, meshing/rendering, packet and message codecs, client/network runtime,
avatar/world/social/service managers, RLV, LSL tools, utilities, Vivox, and
WebRTC are implemented without a CLR bridge. The independent downstream
fixture compiles every cataloged type and member with zero exclusions, and all
1,289 upstream NUnit invocations have reviewed Rust parity cases.
A case counts as translated only when an explicit Rust test body calls the
mapped API and retains the upstream identity and body hash. The parity ledger
@@ -28,9 +31,9 @@ The authoritative compiled .NET surface is checked in as
reviewed Rust destination in [`api/RUST-TYPES.tsv`](api/RUST-TYPES.tsv) and
[`api/RUST-MAPPING.tsv`](api/RUST-MAPPING.tsv); [`api/README.md`](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.
API mappings record ownership, async, error, overload, and native implementation
decisions, and the generated rustdoc keeps those contracts attached to their
exact C# documentation IDs.
Building MetaCrate requires Rust 1.96 or newer.