znippy-plugin-maven — crate card
Reverse-engineered (from source — verify, don't trust the name)
- One-line pitch: Package handler that extracts Maven GAV coordinates from JAR/WAR/EAR/.pom files for the znippy metadata index.
- Does:
extract_maven_metadata(path, data)findsMETA-INF/maven/**/pom.xmlinside a JAR via a hand-rolled ZIP central-directory scan (miniz_oxide inflate for deflated entries) or parses a.pomdirectly;pom.rsparses the POM (MavenCoord) with quick-xml.native.rs(behindhost-decompressors) providesNativeMavenPluginimplementing theArchiveTypePlugintrait;resolver.rs(behindresolve) does dependency resolution over HTTP via ureq. - Key deps:
quick-xml(POM parse),miniz_oxide(JAR deflate), optionalureq(resolve), optionalljar+rayon+znippy-common(native host plugin). - Shape: lib compiled as both
cdylib(native) andrlib(WASM), ~600 LOC:pom.rs(260),resolver.rs(141),native.rs(108),lib.rs(86). - Observed role in the workspace: Registered in
znippy-cli/handlers.rsasNativeMavenPlugin; used by the CLI and the integration tests. Two compile targets so the same logic runs native or embedded as WASM.
Fill in (one line each — only the human knows these)
- Primary consumer(s):
- Why it exists (vs the obvious alternative):
- Hard constraint (airgap / no-C-deps / no-FFI / pure-Rust / etc.):
- Release cadence & independence (rides a parent? own repo someday?):
- Status (production / prototype / experimental / stubbed):
- Must-NOT-change invariant:
- Biggest known gap or TODO:
- Anything a newcomer would get wrong about it: