{"id":13493794,"url":"https://github.com/goproxy/goproxy","last_synced_at":"2025-05-14T10:05:16.636Z","repository":{"id":35248318,"uuid":"189946581","full_name":"goproxy/goproxy","owner":"goproxy","description":"A minimalist Go module proxy handler.","archived":false,"fork":false,"pushed_at":"2024-10-26T06:16:22.000Z","size":541,"stargazers_count":1300,"open_issues_count":1,"forks_count":123,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-10-29T15:37:22.665Z","etag":null,"topics":["go","goproxy","handler","minimalist","module","proxy"],"latest_commit_sha":null,"homepage":"https://pkg.go.dev/github.com/goproxy/goproxy","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/goproxy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-03T06:21:52.000Z","updated_at":"2024-10-28T00:11:07.000Z","dependencies_parsed_at":"2023-02-12T02:17:15.428Z","dependency_job_id":"8033de9f-4a29-406a-98a7-8ac4c7ffda0d","html_url":"https://github.com/goproxy/goproxy","commit_stats":{"total_commits":444,"total_committers":8,"mean_commits":55.5,"dds":"0.024774774774774744","last_synced_commit":"4254665ab65c1d6caee6a1ea4cabf9039bc60099"},"previous_names":[],"tags_count":53,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goproxy%2Fgoproxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goproxy%2Fgoproxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goproxy%2Fgoproxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goproxy%2Fgoproxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/goproxy","download_url":"https://codeload.github.com/goproxy/goproxy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248335289,"owners_count":21086552,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["go","goproxy","handler","minimalist","module","proxy"],"created_at":"2024-07-31T19:01:18.866Z","updated_at":"2025-04-11T03:30:03.353Z","avatar_url":"https://github.com/goproxy.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# Goproxy\n\n[![Test](https://github.com/goproxy/goproxy/actions/workflows/test.yaml/badge.svg)](https://github.com/goproxy/goproxy/actions/workflows/test.yaml)\n[![codecov](https://codecov.io/gh/goproxy/goproxy/branch/master/graph/badge.svg)](https://codecov.io/gh/goproxy/goproxy)\n[![Go Report Card](https://goreportcard.com/badge/github.com/goproxy/goproxy)](https://goreportcard.com/report/github.com/goproxy/goproxy)\n[![Go Reference](https://pkg.go.dev/badge/github.com/goproxy/goproxy.svg)](https://pkg.go.dev/github.com/goproxy/goproxy)\n\nA minimalist Go module proxy handler.\n\nGoproxy has fully implemented the [GOPROXY protocol](https://go.dev/ref/mod#goproxy-protocol). The goal of this project\nis to find the most dead simple way to provide a minimalist handler that can act as a full-featured Go module proxy for\nthose who want to build their own proxies.\n\n## Features\n\n- Extremely easy to use\n  - Three structs: [`goproxy.Goproxy`](https://pkg.go.dev/github.com/goproxy/goproxy#Goproxy),\n    [`goproxy.GoFetcher`](https://pkg.go.dev/github.com/goproxy/goproxy#GoFetcher), and\n    [`goproxy.DirCacher`](https://pkg.go.dev/github.com/goproxy/goproxy#DirCacher)\n  - Two interfaces: [`goproxy.Fetcher`](https://pkg.go.dev/github.com/goproxy/goproxy#Fetcher) and\n    [`goproxy.Cacher`](https://pkg.go.dev/github.com/goproxy/goproxy#Cacher)\n- Built-in support for `GOPROXY`, `GONOPROXY`, `GOSUMDB`, `GONOSUMDB`, and `GOPRIVATE`\n- Supports serving under other Go module proxies by setting `GOPROXY`\n- Supports [proxying checksum databases](https://go.dev/design/25530-sumdb#proxying-a-checksum-database)\n- Supports `Disable-Module-Fetch` header\n\n## Installation\n\n- To use this project programmatically, `go get` it:\n\n  ```bash\n  go get github.com/goproxy/goproxy\n  ```\n\n- To use this project from the command line, download the pre-built binaries from\n  [here](https://github.com/goproxy/goproxy/releases) or build it from source:\n\n  ```bash\n  go install github.com/goproxy/goproxy/cmd/goproxy@latest\n  ```\n\n- To use this project with Docker, pull the pre-built images from\n  [here](https://github.com/goproxy/goproxy/pkgs/container/goproxy):\n\n  ```bash\n  docker pull ghcr.io/goproxy/goproxy\n  ```\n\n## Quick Start\n\n\u003cdetails\u003e\u003csummary\u003eWrite code\u003c/summary\u003e\n\nCreate a file named `goproxy.go`:\n\n```go\npackage main\n\nimport (\n\t\"net/http\"\n\n\t\"github.com/goproxy/goproxy\"\n)\n\nfunc main() {\n\thttp.ListenAndServe(\"localhost:8080\", \u0026goproxy.Goproxy{})\n}\n```\n\nThen run it with a `GOMODCACHE` that differs from `go env GOMODCACHE`:\n\n```bash\nGOMODCACHE=/tmp/goproxy-gomodcache go run goproxy.go\n```\n\nFinally, set `GOPROXY` to try it out:\n\n```bash\ngo env -w GOPROXY=http://localhost:8080,direct\n```\n\nFor more details, refer to the [documentation](https://pkg.go.dev/github.com/goproxy/goproxy).\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eRun from command line\u003c/summary\u003e\n\nRefer to the [Installation](#installation) section to download or build the binary.\n\nThen run it with a `GOMODCACHE` that differs from `go env GOMODCACHE`:\n\n```bash\nGOMODCACHE=/tmp/goproxy-gomodcache goproxy server --address localhost:8080\n```\n\nFinally, set `GOPROXY` to try it out:\n\n```bash\ngo env -w GOPROXY=http://localhost:8080,direct\n```\n\nFor more details, check its usage:\n\n```bash\ngoproxy --help\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eRun with Docker\u003c/summary\u003e\n\nRefer to the [Installation](#installation) section to pull the image.\n\nThen run it:\n\n```bash\ndocker run -p 8080:8080 ghcr.io/goproxy/goproxy server --address :8080\n```\n\nFinally, set `GOPROXY` to try it out:\n\n```bash\ngo env -w GOPROXY=http://localhost:8080,direct\n```\n\nFor more details, check its usage:\n\n```bash\ndocker run ghcr.io/goproxy/goproxy --help\n```\n\n\u003c/details\u003e\n\n## Community\n\nIf you have any questions or ideas about this project, feel free to discuss them\n[here](https://github.com/goproxy/goproxy/discussions).\n\n## Contributing\n\nIf you would like to contribute to this project, please submit issues [here](https://github.com/goproxy/goproxy/issues)\nor pull requests [here](https://github.com/goproxy/goproxy/pulls).\n\nWhen submitting a pull request, please make sure its commit messages adhere to\n[Conventional Commits 1.0.0](https://www.conventionalcommits.org/en/v1.0.0/).\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoproxy%2Fgoproxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoproxy%2Fgoproxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoproxy%2Fgoproxy/lists"}