Getting Started

Welcome to Topaz! There are two places to get started Using Topaz and Building Topaz.

Using Topaz

To get started with Topaz, you can download a binary or build topaz yourself. Once you’ve got a topaz binary you can run it directly, just like you would any other Ruby:

$ ./bin/topaz -e "puts 'hello world'"
hello world
$ echo "puts 'hello world'" >> test.rb
$ ./bin/topaz test.rb
hello world

Keep in mind that Topaz is not finished yet, and you may run into bugs or missing features. If you do please report them!

Building Topaz

Before you build Topaz, there’s a few things you’ll need:

  • A checkout of the topaz repository: git clone
  • A recent checkout of the PyPy repository: hg clone
  • The libffi development files: e.g. on Debian install with sudo apt-get install libffi-dev
  • Other dependencies: pip install -r requirements.txt

We recommend installing PyPy and other dependencies into a virtualenv.

Once everything is setup (make sure rpython is on your PYTHONPATH), you can compile Topaz:

$ python path/to/pypy/rpython/bin/rpython -Ojit

Wait a bit (you’ll see fractals printing, and some progress indicators). On a recent machine it’ll take about ten minutes. And then you’ll have a topaz binary in bin/.

You can also run Topaz without compiling, on top of Python:

$ python -mtopaz -e "puts 'hello world'"
Hello world

Note that this is extremely slow, and should never be used for benchmarking, only for testing.

Alternately, you can build topaz using ruby-build:

$ git clone git://
$ cd ruby-build
$ ./bin/ruby-build topaz-dev /path/to/install/topaz

If you run homebrew on OS X, it’s even easier:

$ brew update && brew install ruby-build
$ ruby-build topaz-dev /path/to/install/topaz

You can also install the latest nightly build of topaz using ruby-build as a plugin to rbenv:

$ brew update && brew install rbenv ruby-build
$ rbenv install topaz-dev