shenzhen-go

module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 5, 2017 License: Apache-2.0

README

"SHENZHEN GO" (working title)

Build Status Doc Status license

SHENZHEN GO (working title) is an experimental visual Go environment, inspired by programming puzzle games such as TIS-100 and SHENZHEN I/O.

SHENZHEN GO provides a UI for editing a "graph," where the nodes are goroutines and the arrows are channel reads and writes. (This is analogous to multiple "microcontrollers" communicating electrically in a circuit.) It can also convert a graph into pure Go source code, which can be compiled and run, or used as a library in a regular Go program.

SHENZHEN GO was unveiled at the linux.conf.au 2017 Open Source & Games Miniconf.

Read more at https://google.github.io/shenzhen-go.

Example Graph

Dependencies

SHENZHEN GO requires:

Installation

If you are using Go 1.7, you need to have set your $GOPATH (common choices are $HOME and $HOME/go, but it's up to you). For Go 1.8, the default $GOPATH is $HOME/go so it is not necessary to set it (but you can change it to override the default if you want).

To install, open a terminal and run:

go get -u github.com/google/shenzhen-go/cmd/shenzhen-go

This should create the shenzhen-go binary in your $GOPATH/bin directory. Run it:

$GOPATH/bin/shenzhen-go

and a web browser should appear with SHENZHEN GO (if not, navigate to http://localhost:8088/ manually).

The file browser is limited to the directory shenzhen-go was started in.

Navigate to the examples/primes.szgo file and play around - this demonstrates an example prime number sieve program.

Notes

This is not an official Google product.

This is an experimental project - expect plenty of rough edges and bugs, and no support.

For discussions, there is a Slack channel.

Directories

Path Synopsis
cmd
shenzhen-go
The shenzhen-go binary serves a visual Go environment.
The shenzhen-go binary serves a visual Go environment.
Package graph manages programs stored as graphs.
Package graph manages programs stored as graphs.
Package parts contains various pre-made bits and pieces to combine into the graph.
Package parts contains various pre-made bits and pieces to combine into the graph.
partlib
Package partlib includes supporting functions for parts.
Package partlib includes supporting functions for parts.
Package source helps deal with Go source code.
Package source helps deal with Go source code.
Package view provides the user interface.
Package view provides the user interface.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL