Skip to content
Goby - Yet another programming language written in Go
Go Ruby Other
Branch: master
Clone or download
st0012 Merge pull request #821 from goby-lang/st0012-patch-1
Add a section to introduce test commands
Latest commit 284bfe4 Jan 20, 2020
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update issue template. Aug 25, 2017
cmd/binder Fix by golint on cmd/binder Dec 12, 2019
igb Integrate checkDoubleQuoteOpen and checkSingleQuoteOpen to checkOpenQ… Jan 26, 2019
lib Integer#times should return enumerator Mar 16, 2019
native Fix by golint on native/ Dec 12, 2019
samples We now support serializing custom types with custom config. Feb 27, 2018
snap Make the snap classic ( Oct 31, 2017
specs Integer#times should return enumerator Mar 16, 2019
test_fixtures Fix by golint on test_fixtures Dec 12, 2019
vendor Perform `go mod vendor` Jun 12, 2019
vm Fix misspell as suggested Dec 12, 2019
wiki Add preview png for Goby introduction slide Apr 28, 2018
.codeclimate.yml Excluse vendor file from CI check. Jul 23, 2017
.gitattributes Change extension name from 'ro' to 'gb' May 18, 2017
.gitignore Trying to inspect test failure. Jul 7, 2018
.travis.yml Add Go 1.13.x to .travis.yml Sep 18, 2019 Create Jun 9, 2017 Update Jan 20, 2020
Dockerfile Update README and Dockerfile Jun 12, 2019
LICENSE Initial commit Feb 8, 2017
Makefile DRYer code Nov 17, 2019 Update broken slack link Oct 5, 2019
_config.yml Set theme jekyll-theme-architect May 4, 2017
benchmark.rb rework benchmark running Apr 29, 2018
bzt.yml Setup Taurus and use apache benchmark to run load testing on CI. Jun 7, 2017
codecov.yml Excluse vendor file from CI check. Jul 23, 2017
go.mod Update go.mod Nov 4, 2019
go.sum Update go.mod Nov 4, 2019
goby.go Fix by golint Dec 12, 2019
goby_test.go Merge branch 'master' into fix_by_ineffassign Dec 12, 2019 Temporarily remove race condition check for tests Sep 12, 2019


Build Status GoDoc Go Report Card codecov Readme Score Snap Status Open Source Helpers Reviewed by Hound

Goby is an object-oriented interpreter language deeply inspired by Ruby as well as its core implementation by 100% pure Go. Moreover, it has standard libraries to provide several features such as the Plugin system. Note that we do not intend to reproduce whole of the honorable works of Ruby syntax/implementation/libraries.

One of our goal is to provide web developers a sort of small and handy environment that mainly focusing on creating API servers or microservices. For this, Goby includes the following native features:

  • Robust thread/channel mechanism powered by Go's goroutine
  • Builtin high-performance HTTP server
  • Builtin database library (currently only support PostgreSQL adapter)
  • JSON support
  • Plugin system that can load existing Go packages dynamically (Only for Linux and MacOS right now)
  • Accessing Go objects from Goby directly

Note: Goby had formerly been known as "Rooby", which was renamed in May 2017.

Table of contents

Demo screen and sample Goby app

Click to see the demo below (powered by asciinema and GIPHY).

New! Check-out our sample app built with Goby. Source code is also available here.



Goby has several aspects: language specification, design of compiler and vm, implementation (just one for now), library, and the whole of them. See more

We are optimizing and expanding Goby all the time. Toward the first release, we've been focusing on implementing Goby first.

Major Features

  • Plugin system
    • Allows using Go libraries (packages) dynamically
    • Allows calling Go's methods from Goby directly (only on Linux for now)
  • Builtin multi-threaded server and DB library
  • REPL (run goby -i)

Here's a complete list of all the features.

Current roadmap

See wiki: Current roadmap


Confirmed Goby runs on Mac OS and Linux for now. Try Goby on Windows and let us know the result.

A. Via Homebrew (binary installation for Mac OS)

Note: Please check the latest release before installing Goby via Homebrew

brew tap goby-lang/goby
brew install goby

In the case, $GOBY_ROOT is automatically configured.

B. From Source

Try this if you'd like to contribute Goby! Skip 1 if you already have Golang in your environment.

  1. Prepare Golang environment
    • Install Golang >= 1.12
    • Make sure $GOPATH in your shell's config file( like .bashrc) is correct
    • Add your $GOPATH/bin to $PATH
    • Add export GO111MODULE=on to your shell profile
  2. Run go get
  3. Set the Goby project's exact root path $GOBY_ROOT manually, which should be:

C. Installation on a Linux system

In order to install Go, Goby and PostgreSQL on a Linux system, see the wiki page.

Verifying Goby installation

  1. Run goby -v to see the version.
  2. Run goby -i to launch igb REPL.
  3. Type require "uri" in igb.

FYI: You can just run brew test goby to check Homebrew installation.

If you have any issue installing Goby, please let us know via GitHub issues

Using Docker

Goby has official docker image as well. You can try the Plugin System using docker.

Syntax highlighting

The Goby syntax is currently a subset of the Ruby one, with an exception (get_block), therefore, it's possible to attain syntax highlighting on any platform/editor by simply switching it to Ruby for the currently opened file.

Sublime Text 3

Sublime Text 3 users can use the Only Goby package, by typing the following in a terminal:

git clone "$HOME/.config/sublime-text-3/Packages/only-goby-for-sublime-text"

this will automatically apply the Goby syntax highlighting to the .gb files.


Vim users can use the vim-goby-syntax-highlighting definition, by typing the following in a terminal:

mkdir -p "$HOME/.vim/syntax"
wget -O "$HOME/.vim/syntax/goby.vim"
echo 'au BufNewFile,BufRead *.gb    setf goby' >> "$HOME/.vim/filetype.vim"

this will automatically apply the Goby syntax highlighting to the .gb files.


SpaceVim users can load the lang#goby layer by adding following configuration:

  name = "lang#goby"

Sample codes

More sample Goby codes can be found in sample directory.

Joining to Goby

Join us on Slack!

See the guideline.


  • @st0012
  • @hachi8833
  • @saveriomiroddi
  • @ear7h


Support Us


Support us with a monthly donation and help us continue our activities. [Become a backer]


Powered by

JetBrains Goland

Supporting Goby by sending your first PR! See contribution guideline

Or support us on opencollective


The followings are the essential resources to create Goby; I highly recommend you to check them first if you'd be interested in building your own languages:

You can’t perform that action at this time.