A rough draft, for now
While Go package management is in flux, we wanted to unveil this small puzzle piece to see if it resonates with you.
Fast and reliable package repository for Go
melodyRepo is a caching server that analyzes Go repositories to extract and normalize package metadata and archives. Once a repo has been indexed, its content and metadata will be permanently cached for quick retrieval regardless of the source repository’s availablility and performance.
While Go package management is in flux, we wanted to unveil this small puzzle piece to see if it resonates with you.
No need to worry about the future of each package and uptime of each repository. melodyRepo caches everything.
melodyRepo supports batched metadata queries and CDN-friendly archive downloads. Say “no” to version history bloat.
To fetch and analyze Go repositories locally, you need to install a number of version control and other tools.
Similar to git describe
, our auto-versioning of each revision allows eyes and tools to gauge a revision’s impact, not just guess at a SHA-1 hash.
Developed and maintained by Gemfury, a team with years of cloud repo experience offered to many satisfied customers.
The distributed nature of Go project dependencies requires that GitHub and every other service hosting repositories to be fast and available. With the growth of the Go ecosystem and individual project complexity, dependency analysis and installation is trendind toward slower and more fragile.
Semantic Versioning is a tried-n-tested community standard that allows both humans and robots to quickly communicate the impact of each change. Rather than vendoring a single revision with no reliable upgrade path, or blindly riding the bleeding edge, SemVer allows a developer to rapidly assess the impact of each update. As Go community grows and matures, this and other implicit standards will give more confidence to both package authors and consumers to move forward.
melodyRepo accepts GraphQL and responds with JSON at this endpoint:
https://api.melody.sh/graphql
You can list all tagged versions, if available:
package(name:"github.com/urfave/cli") {
versions {
edges {
node {
version
}
}
}
}
Untagged commits will not appear in the list above. You can explicitly request any revision:
package(name:"github.com/aws/aws-sdk-go/aws") {
version(revision:"2c129c11a732646f1411de34ad4833f50503f344") {
release {
name
version
url
}
dependencies {
edges {
node {
name
scope
}
}
}
}
}
If you want to integrate, contribute, or curious about
what's next, let us keep you up to date: