hitzhangjie / playgo

:ghost: a real playful Golang Playground

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

:ghost: a real playful Golang Playground


Languages

Language:Go 50.0%Language:JavaScript 23.9%Language:SCSS 9.8%Language:HTML 7.2%Language:Makefile 7.0%Language:Dockerfile 2.1%