Go specs implemented as a scripting language in Rust

Go specs implemented as a scripting language.

The Goal

  • Runs most pure Go code, probably add some dynamic features if requested.

How do I try

The project “engine” is the entry/wrapper. there are test cases in here to browse through.

  • Make sure your Rust installation is up to date.
  • Clone this repository.
  • Go to goscript/engine
  • Run cargo test -- --nocapture

Use Cases

  • As an embedded language like Lua.
  • As a glue language like Python.


  • A scripting language that is Rust friendly is needed.
  • Go is popular and easy(even as a scripting language).
  • In some cases, when your project gets big:
    • If Go were an embedded language it would be better than Lua.
    • If Go were a glue language it would be better than Python, in terms of project maintainability.
  • I found a new hammer(Rust) that I like, and decided to use it on a nail(Go) that I like.


  • There are five projects:
    • parser — a port of the official implementation that comes with the Go installer.
    • type checker — a port of the official implementation that comes with the Go installer.
    • codegen — generates the bytecode.
    • vm — runs the bytecode.
    • engine — the wrapper.


  • Language: the biggest missing part is goroutine/channel/defer, supports most features, some of them are, probably for the first time, implemented in a script language :), like Pointer/Interface/Struct.
  • Standard library: just got started.
  • Production readiness: far from. The parser and the type checker are probably ok because they were ported and passes
    the test cases comes with the original code. The backend has a lot of rough edges, and we need much more test cases.
  • Next step: no new features for now, polish then work on the standard library.

Get in touch


Leave a Reply

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

GIPHY App Key not set. Please check settings

A simple vue grid help you to build excellent layout for your app

Apple Issues Urgent Updates to Fix New Zero-Day Linked to Pegasus Spyware