A ZIO 2 / Scala 3 toolkit for working with Maven Central:
- Read API (
MavenCentral) — typedGroupId/ArtifactId/Version/GroupArtifact[Version]coordinates,searchArtifacts,searchVersions,latest/latestOrFail,pom,mavenMetadata,isArtifact,artifactExists,isModifiedSince, andjarUri/javadocUri/sourcesUriURL resolution. Requests fall back fromrepo1.maven.orgtorepo.maven.apache.organd can opt in to retry-on-5xx via theretryOnServerErrorextension. - Downloads — stream a jar to a
FilewithdownloadJar, or download-and-extract a zip withdownloadAndExtractZip, both surfacingLast-Modified/ETagcache metadata. - JarCache — scoped, on-disk jar cache with random-access
ZipFilereads, single-flight deduplication of concurrent fetches for the same GAV, and finalizer-driven handle cleanup; entry lookups don't decompress the rest of the jar. - GavCacheMiddleware —
zio-httpHandlerAspects that stamp GAV-versioned routes with a path-derived stableETag, pinnedLast-Modified, andCache-Control: public, max-age, immutable, and short-circuit conditional GETs to304 Not Modifiedbefore the upstream fetch. - Path codecs (
MavenCentral.Codecs) —zio-httpPathCodecs for GAV value types. - Publishing (
MavenCentral.Deploy.Sonatype) — Sonatype Central Portal client: bundleupload,checkStatus,drop, and an end-to-enduploadVerifyAndPublishthat polls until the deployment isVALIDATEDthen publishes.Sonatype.LivereadsOSS_DEPLOY_USERNAME/OSS_DEPLOY_PASSWORD;Sonatype.fromCredentialsaccepts explicit values.