gogo-playground

Can I import 3rd party package into golang playground


I googled but got no answer. Is it possible? If yes, how to do it?

The Go Playground link: https://play.golang.org/


Solution

  • Since May 14th, 2019, it is now possible (from Brad Fitzpatrick)!

    The #golang playground now supports third-party imports, pulling them in via https://proxy.golang.org/

    Example: https://play.golang.org/p/eqEo7mqdS9l 🎉

    Multi-file support & few other things up next.
    Report bugs at golang/go issue 31944, or here on the tweeters.

    (On the "multiple file" support, see, since May. 16th 2019, "Which packages may be imported in the go playground?": see an example here)

    netbrain suggests in the comments another example:

    On the playground:

    package main
    
    import (
        "fmt"
    
        "gonum.org/v1/gonum/mat"
    )
    
    func main() {
        v1 := mat.NewVecDense(4,[]float64{1,2,3,4})
        fmt.Println(mat.Dot(v1,v1))
    }
    

    woud give '30', using mat.NewVecDense() to create a column vector, and mat.Dot() to return the sum of the element-wise product of v1 and v1

    The point being: gonum/mat is not part of the Go Standard Library.


    Original answers:

    The most complete article on Go Playground remains "Inside the Go Playground", which mentions:

    None of those processes support importing a remote package (that would be accessed over the internet).
    It is very much a self-contained system (that you can run locally as well as using it from play.golang.org), with multiple features stubbed or faked, like the network:

    Like the file system, the playground's network stack is an in-process fake implemented by the syscall package.
    It permits playground projects to use the loopback interface (127.0.0.1).
    Requests to other hosts will fail.


    Update 2017:

    You have alternatives:

    But they still use use the official Go Playground service to build and run Go code, so that would still not allow for external imports.