Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Boot any rails app in under a second.
Go Ruby C++ Objective-C

This branch is 537 commits behind burke:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bin
ext
lib
spec
.gitignore
.travis.yml
.zeus.rb
Gemfile
MIT-LICENSE
README.md
Rakefile
zeus.gemspec

README.md

Zeus Build Status Code Climate

What is Zeus?

Zeus preloads your app so that your normal development tasks such as console, server, generate, and specs/tests take less than one second.

This screencast gives a quick overview of how to use zeus:

Watch the screencast!

Requirements

Pretty specific:

  • OS X 10.7+
  • Ruby 1.9+
  • Rails 3.0+ (Support for other versions is not difficult and is planned.)
  • Backported GC from Ruby 2.0.

You can install the GC-patched ruby from this gist or from RVM. This is not actually 100% necessary, especially if you have a lot of memory. Feel free to give it a shot first without, but if you're suddenly out of RAM, switching to the GC-patched ruby will fix it.

Installation

Install the gem.

gem install zeus

Q: "I should put it in my Gemfile, right?"

A: No. running bundle exec zeus instead of zeus can add precious seconds to a command that otherwise would take 200ms. Zeus was built to be run from outside of bundler.

Usage

Start the server:

zeus start

Run some commands:

zeus console
zeus server
zeus testrb test/unit/widget_test.rb
zeus rspec spec/widget_spec.rb
zeus generate model omg
zeus rake -T
zeus runner omg.rb

Contributing

Fork, Branch, Pull Request.

Thanks...

  • To Stefan Penner for discussion and various contributions.
  • To Samuel Kadolph for doing most of the cross-process pseudoterminal legwork.
  • To Jesse Storimer for spin, part of the inspiration for this project
  • To Shopify for letting me spend (some of) my days working on this.

Doesn't work for you?

Try these libraries instead:

Something went wrong with that request. Please try again.