Git Product home page Git Product logo

goproxy.cn's Introduction

English简体中文

Goproxy China

The most trusted Go module proxy in China.

Goproxy China has fully implemented the Go's module proxy protocol. And it's a non-profit project supported by China's well-trusted cloud service provider Qiniu Cloud. Our goal is to provide a free, trusted, always on, and CDNed Go module proxy for Gophers in China and the rest of the world.

Goproxy China only focuses on the development of the web application that serves at the https://goproxy.cn. If you're looking for a dead simple way to build your own Go module proxy, then you should take a look at Goproxy which is Goproxy China based on.

Happy coding, Gophers! ;-)

Note: In order to better help Gophers to use Go moduels, Goproxy China now supports answering all Go moduels related questions (no longer just related to Go module proxy), all you need to do is simply follow the issue template to post questions here. Don't forget to check if our FAQ page already has the question you want to ask.

Usage

Although the following content only explains how to set GOPROXY, but we also recommend that you set GO111MODULE to on instead of auto when you are working with Go modules.

Go 1.13 and above (RECOMMENDED)

Open your terminal and execute

$ go env -w GOPROXY=https://goproxy.cn,direct

done.

macOS or Linux

Open your terminal and execute

$ export GOPROXY=https://goproxy.cn

or

$ echo "export GOPROXY=https://goproxy.cn" >> ~/.profile && source ~/.profile

done.

Windows

Open your PowerShell and execute

C:\> $env:GOPROXY = "https://goproxy.cn"

or

1. Open the Start Search, type in "env"
2. Choose the "Edit the system environment variables"
3. Click the "Environment Variables…" button
4. Under the "User variables for <YOUR_USERNAME>" section (the upper half)
5. Click the "New..." button
6. Choose the "Variable name" input bar, type in "GOPROXY"
7. Choose the "Variable value" input bar, type in "https://goproxy.cn"
8. Click the "OK" button

done.

FAQ

Why create Goproxy China?

Due to the Chinese government's network supervision system, there're lot of modules in the Go ecosystem that Chinese Gophers cannot go get, such as the most famous golang.org/x/.... And the speed of getting modules from GitHub in the mainland of China is a bit slow. So we created Goproxy China to make Gophers in China better use Go modules. In fact, since the goproxy.cn has been CDNed, Gophers in other countries can also use it.

Is it safe to use Goproxy China?

Of course, as with all other Go module proxies, we just cache the modules as they are, so we can assure you that they will never be tampered with on our side. However, if you still can't fully trust us, then you can use the most trusted checksum database sum.golang.org to ensure that the modules you get from us have not been tampered with, since Goproxy China has supported proxying checksum databases.

Is Goproxy China legal in China?

Goproxy China is a business-supported project rather than a personal project. And it has been ICP filed in the MIIT of China (ICP license: 沪ICP备11037377号-56), which means it's fully legal in China.

Why not use the proxy.golang.org?

The proxy.golang.org has been blocked in the mainland of China. So, no. However, if you're not in the mainland of China, then we recommend that you give priority to using the proxy.golang.org, after all, it looks more official. Once you enter the mainland of China, we hope that you'll think of the goproxy.cn in the first place, which is the main reason why we choose the .cn as the domain name extension.

I committed a new revision to a repository, why isn't it showing up when I run go get -u or go list -m -versions?

In order to improve caching and serving latencies, new revisions may not show up right away. If you want new revision to be immediately available in the goproxy.cn, then first make sure there is a semantically versioned tag for this revision in the source repository. Then explicitly request that tagged version via go get module@version. After couple of minutes for caches to expire, the go command will see that tagged version.

I removed a bad release from my repository but it still appears, what should I do?

Whenever possible, Goproxy China aims to cache content in order to avoid breaking builds for people that depend on your module, so this bad release may still be available in the goproxy.cn even if it is not available at the origin. The same situation applies if you delete your entire repository. We suggest creating a new release and encouraging people to use that one instead.

Who will answer the questions that I have asked in here?

Members of Goproxy China and enthusiastic volunteers from our great Go community. Please keep in mind that in order to alleviate the workload of others, don't forget to check if our FAQ page already has the question you want to ask.

Credits

Community

If you want to discuss Goproxy China, or ask questions about it, simply post questions or ideas here.

Contributing

If you want to help build Goproxy China, simply follow this to send pull requests here.

License

This project is licensed under the Unlicense.

License can be found here.

goproxy.cn's People

Contributors

aofei avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.