Add authoritative public API catalog
This commit is contained in:
30
api/README.md
Normal file
30
api/README.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# 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:
|
||||
|
||||
```sh
|
||||
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.
|
||||
1296068
api/public-api.json
Normal file
1296068
api/public-api.json
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user