Files
MetaCrate/api

Public API catalog

public-api.json is the authoritative compiled-metadata inventory for the 13 LibreMetaverse library assemblies at the pinned upstream commit. It contains:

  • stable C# documentation IDs and complete public type/member metadata;
  • nullability, constraints, bases, interfaces, overload parameters, accessors, constants, events, delegates, enum values, and public attributes;
  • assembly identities and independent reflection/ECMA-335 count checks;
  • hashes for the outputs of all six upstream source generators;
  • external_types, the non-LibreMetaverse types used by public signatures and every LibreMetaverse API that uses them.

External entries are replacement obligations, not copied dependency APIs. Issue #3 must map each one to a Rust crate/path: use Rust core/std or an adopted crate where it preserves the contract, otherwise define a native MetaCrate type. The catalog deliberately does not enumerate members of SkiaSharp, SIPSorcery, MessagePack, CoreJ2K, or any other external assembly.

Regenerate from the clean pinned upstream checkout:

python3 tools/extract_public_api.py

The command builds the upstream libraries into a temporary directory, runs the extractor twice against the same compiled metadata, rejects count mismatches or duplicate documentation IDs, and writes the result only when both outputs are byte-identical. The extractor is development-only and is absent from every Cargo manifest and published Rust dependency graph.