Assets: implement asset models, decoding contracts, cache, and download pipeline #64
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Objective
Implement base Asset and concrete asset types plus AssetCache, deduplicated requests, uploads/downloads, texture/mesh fetching, and cache pruning.
Deliverables
Validation
Prerequisite
Networking/client lifecycle and all foundational implementation milestones are complete; mapped APIs and translated tests are fixed.
Project constraints
Implemented and pushed in commit
52f62d8.The native Rust asset slice now includes bounded concrete asset models and real JPEG 2000/Ogg Vorbis codec boundaries; GLTF material/override handling; client-owned capability and LLUDP asset, mesh, texture, Xfer, and upload pipelines; authenticated inventory material uploads; independent cancellation for deduplicated HTTP waiters; transfer/progress event models; and a confined, atomic, corruption-aware, activity-pruned disk cache with custom naming support. Documentation and an issue-specific coverage audit were added.
Verification: cargo check --workspace; isolated tests/api-compile cargo check; strict libremetaverse library Clippy with all features; 5 native asset_pipeline_semantics tests; 13 related material-document compatibility cases; 11 related asset-capability compatibility cases; all 11 caps_http/download regressions; generator, mapping, API coverage, formatting, diff, and issue #64 audit gates. The 12 GLTF document cases and terrain/postcard/thumbnail cases belong to other milestone issues and were intentionally excluded.