👻 a real playful Golang Playground
Clone or download
Latest commit 46b3a39 Oct 27, 2017
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
engine merge after rename Jul 8, 2016
web rename to playgo Jul 5, 2016
www rename to playgo Jul 5, 2016
.gitignore Ignore some files Jun 25, 2016
.hound.yml Hound + JS = not fun... Jun 27, 2016
.travis.yml Updated .travis.yml Oct 22, 2017
Dockerfile rename to playgo Jul 5, 2016
Makefile 🐙 remove test script, move to Makefile Jun 22, 2016
README.md merge after rename Jul 8, 2016
climode.png 🚕 add README.md Jun 24, 2016
main.go merge after rename Jul 8, 2016
screenshot.png 🚕 add README.md Jun 24, 2016
webmode.png 🚕 add README.md Jun 24, 2016

README.md

playgo - a real playful Golang playground

Build Status

Why use this?

Because:

  • Can import any package
  • The official Playground's UI sucks :trollface:
  • This one run locally with no need of container/docker
  • Smaller code-base, easier to customize
  • Use it the way you want (cli mode and web mode)
  • Forget the code format, just type the code anyway you want
  • ... (add more awesome stuff here) ...

How to install?

go get -u github.com/huytd/playgo

That's all! (Given that you have a GOPATH configured, and $GOPATH/bin in your PATH)

Or run in Docker container:

docker build -t playgo .
# may be: docker push ...
docker run -d -p 3000:3000 playgo

What is this?

This is the simple version of Go Playground. It run locally with no container needed.

There are 2 modes available:

Command-line mode

Also called as cli mode. In this mode, the playground will read the code from os.Stdin and execute it. This enable the ability to integrate playgo with other editors such as vim, sublime, atom,...

Usage:

echo 'print("Hello, do some math, 1 + 1 = ", 1 + 1)' | playgo

or

cat something.txt | playgo

Web mode

If you don't like using cli mode, you can use the web IDE by run the following command:

playgo -mode=web

The web IDE will be started at http://localhost:3000 by default.

You can change the port by:

PLAYGO_PORT=8080 playgo -mode=web

License

This project is licensed under the terms of the MIT license.

For Developers

It would be nice if you want to contribute to this project. I really need your help, there are a lot of things to do.

Feel free to create a pull request or make an issue to report bugs/request new features. You can see the list of things to do below.

🙇

To Do:

  • Support gofmt - Recommend to use it only in full code mode
  • Fully Support import - Currently available in full code mode
  • Support func - Currently available in full code mode
  • Support channel (real problem is: streaming output)
  • Execute code in containers or isolated environment for more security?
  • Create a command line code editor / or a VIM plugin?
  • Autocomplete for web IDE