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 and sample Goby app
- Current roadmap
- Sample codes
- Joining to Goby
- Support us
Demo screen and sample Goby app
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.
- Plugin system
- Allows to use Go libraries (packages) dynamically
- Allows to call Go’s methods from Goby directly (only on Linux for now)
- Builtin multi-threaded server and DB library
- REPL (run
Here’s a complete list of all the features.
- [ ] create functions for testing framework like
begin– by 2018 March
- [ ] testing framework – by 2018 April
- [ ] third-party library support (like
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.
- Prepare Golang environment
- Install Golang >= 1.10
- Make sure
$GOPATHin your shell’s config file( like .bashrc) is correct
- Add you
go get github.com/goby-lang/goby
- Set the Goby project’s exact root path
$GOBY_ROOTmanually, 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
goby -vto see the version.
goby -ito launch igb REPL.
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
- Built a stack data structure using Goby
- Running a “Hello World” app with built in server library
- Sending request using http library
- Running load test on blocking server (This shows
Goby’s simple server is very performant and can handle requests concurrently)
- One thousand threads
More sample Goby codes can be found in sample directory.
- User Manual (WIP)(Gitbooks)
- API Documentation – needs update the build script. See the guide for API doc if you’d like to contribute.
Joining to Goby
See the guideline.
Support us with a monthly donation and help us continue our activities. [Become a backer]
- JetBrains Goland IDE
Supporting Goby by sending your first PR! See contribution guideline
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: