{"id":13463361,"url":"https://github.com/burke/zeus","last_synced_at":"2025-05-13T17:05:20.508Z","repository":{"id":4090930,"uuid":"5198123","full_name":"burke/zeus","owner":"burke","description":"Boot any rails app in under a second.","archived":false,"fork":false,"pushed_at":"2024-09-11T17:59:19.000Z","size":2070,"stargazers_count":3327,"open_issues_count":104,"forks_count":226,"subscribers_count":46,"default_branch":"master","last_synced_at":"2025-04-23T22:57:19.475Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/burke.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":"contributing.md","funding":null,"license":"MIT-LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-07-26T22:32:00.000Z","updated_at":"2025-04-03T12:42:35.000Z","dependencies_parsed_at":"2024-01-13T01:39:54.390Z","dependency_job_id":"f190a766-fab1-4aea-a7f8-39d4aafc5c5e","html_url":"https://github.com/burke/zeus","commit_stats":{"total_commits":715,"total_committers":62,"mean_commits":11.53225806451613,"dds":"0.40279720279720277","last_synced_commit":"9ba439429e0337c6fb73c0a70c7d907a3a49a912"},"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/burke%2Fzeus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/burke%2Fzeus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/burke%2Fzeus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/burke%2Fzeus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/burke","download_url":"https://codeload.github.com/burke/zeus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253990460,"owners_count":21995774,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T13:00:51.991Z","updated_at":"2025-05-13T17:05:20.489Z","avatar_url":"https://github.com/burke.png","language":"Go","readme":"# Zeus\n\n[![Join the chat at https://gitter.im/zeus-application-preloader/Lobby](https://badges.gitter.im/zeus-application-preloader/Lobby.svg)](https://gitter.im/zeus-application-preloader/Lobby?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![Build Status](https://travis-ci.org/burke/zeus.svg?branch=master)](https://travis-ci.org/burke/zeus)\n\nZeus preloads your Rails app so that your normal development tasks such as `console`, `server`, `generate`, and specs/tests take **less than one second**.\n\nThis screencast gives a quick overview of how to use zeus with Rails.\n\n[![Watch the screencast!](http://s3.amazonaws.com/burkelibbey/vimeo-zeus.png)](http://vimeo.com/burkelibbey/zeus)\n\nZeus is also covered in [RailsCasts episode 412](http://railscasts.com/episodes/412-fast-rails-commands).\n\nMore generally, Zeus is a language-agnostic application checkpointer for non-multithreaded applications. Currently only ruby is targeted, but explicit support for other languages is possible.\n\n\n## Requirements (for use with Rails)\n\n* macOS 13+ *OR* Linux 2.6.13+\n* Rails 3.x or 4.x\n* Compatible Ruby installation\n  * Ruby 2.0+\n  * Rubinius\n\n**Please note**: Zeus requires your project to be running on a file system that supports FSEvents or inotify. This means no NFS, CIFS, Samba, or VBox/VMWare shared folders.\n\n\n## Installation\n\nInstall the gem.\n\n    gem install zeus\n\nQ: \"I should put it in my `Gemfile`, right?\"\n\nA: No. You can, but running `bundle exec zeus` instead of `zeus` adds precious seconds to commands that otherwise would be quite a bit faster. Zeus was built to be run from outside of bundler.\n\n#### IMPORTANT\n\nIt is common to see tests running twice when starting out with Zeus. If you see your tests/specs running twice, you should try disabling `require 'rspec/autotest'` and `require 'rspec/autorun'` (for RSpec), or `require 'minitest/autorun'` (for Minitest). (see [#134](https://github.com/burke/zeus/issues/134) for more information).\n\n\n## Rails Set up \n\nIn your app's directory initialize zeus:\n\n    zeus init\n\nwhich will create two files\n\n    custom_plan.rb\n    zeus.json\n\nForce the test environment: In `test/test_helper.rb` (or `spec/spec_helper.rb` if using RSpec), change:\n\n\n    ENV['RAILS_ENV'] ||= 'test'\n\nTo:\n\n    ENV['RAILS_ENV'] = 'test'\n\n_More helpful set up hints at [this very nice guide put together by Thoughtbot](https://robots.thoughtbot.com/improving-rails-boot-time-with-zeus)_\n\n## Usage\n\nStart the server:\n\n    zeus start\n\nThe server will print a list of available commands.\n\nRun some commands in another shell:\n\n    zeus console\n    zeus server\n    zeus test test/unit/widget_test.rb\n    zeus test spec/widget_spec.rb\n    zeus generate model omg\n    zeus rake -T\n    zeus runner omg.rb\n\n## Limitations\n\nYou need to restart zeus if you make changes to various initialization files. Examples of these files include:\n\n * FactoryBot factories\n * RSpec support files\n\n## Related gems\n\n* [Spork](https://github.com/sporkrb/spork) - a [DRb server](http://www.ruby-doc.org/stdlib-1.9.3/libdoc/drb/rdoc/DRb.html) that forks before each run to ensure a clean testing state\n* [Commands](https://github.com/rails/commands) - a persistent console that runs Rails commands without reloading the env\n* [Spring](https://github.com/rails/spring) - like Zeus but in pure Ruby, totally automatic, and included in Rails 4.1+.\n\nIf you're switching from Spork, be sure to [read the wiki page on Spork](https://github.com/burke/zeus/wiki/Spork).\n\n\n## Customizing Zeus Commands\n\nTo add/modify commands, see [`docs/ruby/modifying.md`](docs/ruby/modifying.md).\n\n\n## Contributing\n\nTo get started hacking on Zeus itself, see [`docs/overview.md`](docs/overview.md).\n\nSee also the handy contribution guide at [`contributing.md`](contributing.md).\n\n\n## Rails 2.3 Support\n\nThe default plan bundled with zeus only supports Rails 3.x and 4.x. There is a project to provide Rails 2.3 support [here](https://github.com/tyler-smith/zeus-rails23), however it has not been updated in some time.\n\n## Legacy Ruby Versions\n\nDue to official Ruby support lapsing in Feb 2015, Ruby 1.9.3 and below are no longer officially supported. Zeus may work with them but we are not actively supporting them at this time. The last release tested with these versions is [0.15.4](https://github.com/burke/zeus/tree/v0.15.4).\n\n","funding_links":[],"categories":["Testing","Go"],"sub_categories":["Distributed Testing"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fburke%2Fzeus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fburke%2Fzeus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fburke%2Fzeus/lists"}