zbatery.git  about / heads / tags
Zbatery HTTP server for Rack
$ git log --pretty=format:'%h %s (%cs)%d' v0.1.0 --
c2ece58 Zbatery 0.1.0 (2009-12-22)
	(tag: v0.1.0)
c17e73c ficks speling eror in README (2009-12-22)
35f7422 GNUmakefile: releases push tgz to Rubyforge (2009-12-21)
64d9550 avoid breaking user switching with a single process (2009-12-16)
b7ade93 doc: update README, add FAQ (2009-12-15)
95c6af7 gemspec: relax Rainbows! dependency (2009-12-14)
50187c3 prep for release (2009-12-10)
	(tag: v0.0.0)
a8ef8c7 trap and noop SIGWINCH, too (2009-12-09)
71af381 do not expand paths given by shell (2009-11-29)
0e278d2 initial (2009-11-27)

$ git cat-file blob v0.1.0:README
= Zbatery: Rack HTTP server without a fork stuck in it

Zbatery is an HTTP server for Rack applications on systems that either
do not support fork(), or have no memory (nor need) to run the
master/worker model.  It is based on Rainbows! (which is based on
Unicorn (which is based on Mongrel)) and inherits parts of each.
Zbatery supports your choice of all the thread/fiber/event/actor-based
concurrency models and Rack middleware that Rainbows! supports (or will
ever support) in a single process.

Zbatery will still exploit certain features of Unix for transparent
upgrades, log reopening, and graceful stops, but does not rely on them
for basic functionality.

== Features

* Designed for {Rack}[http://rack.rubyforge.org/], the standard for
  modern Ruby HTTP applications.

* Configuration files are compatible with Rainbows!, a superset
  of the Unicorn
  {DSL}[http://unicorn.bogomips.org/Unicorn/Configurator.html].

* Inherits all features and concurrency models Rainbows! supports
  (and ever will support): http://rainbows.rubyforge.org/Summary.html

* -Untested- Works under operating systems that don't support signals,
  pipe and fork().  Unicorn 0.95.2+ has rake-compiler support, so
  compiling the HTTP parser should be easier at least.

* Web Sockets support (via
  {Sunshowers}[http://rainbows.rubyforge.org/sunshowers/]), requires
  Rainbows! 0.9.0+

== License

Zbatery is copyright 2009 by all contributors (see logs in git).
It is ultimately based on Mongrel and carries the same license.

Mongrel is copyright 2007 Zed A. Shaw and contributors. It is licensed
under the Ruby license and the GPL2. See the included LICENSE file for
details.

Zbatery is 100% Free Software.

== Install

You may download the tarball from the Rainbows project page on Rubyforge
and run setup.rb after unpacking it (and installing Unicorn and Rainbows!):

http://rubyforge.org/frs/?group_id=8977

You may also install it via RubyGems on Gemcutter:

  gem install zbatery

Zbatery depends on Rainbows!, and in turn, Unicorn.  Despite Unicorn and
Rainbows! being Unix-only, the Unicorn HTTP parser C extension should
build on non-Unix-like systems (unverified).

== Usage

=== for Rack applications

In APP_ROOT (where config.ru is located), run:

  zbatery

Zbatery will bind to all interfaces on TCP port 8080 by default.

=== Configuration File(s)

Zbatery will look for the config.ru file used by rackup in APP_ROOT.

For deployments, it can use a config file for Unicorn and
Rainbows!-specific options specified by the +--config-file/-c+
command-line switch.  Zbatery accepts all options found in
{Unicorn::Configurator}[http://unicorn.bogomips.org/Unicorn/Configurator.html]
as well as the "Rainbows!" block, so you can have the following in your
config file:

    Rainbows! do
      use :FiberSpawn
      worker_connections 400
    end

See the Rainbows! configuration
{documentation}[http://rainbows.rubyforge.org/Rainbows.html#M000001]
for more details.

== Disclaimer

There is NO WARRANTY whatsoever if anything goes wrong, but let us know
and we'll try our best to fix it.

This project may be temporary and may eventually have its name encoded
with uncrackable ROT13 encryption leaving you with no way to upgrade.

== Development

Most of the work is done in Rainbows!, Zbatery is just a shim to
allow access to Rainbows! without requiring fork() or signals.

You can get the latest source via git from the following locations:

  git://git.bogomips.org/zbatery.git
  git://repo.or.cz/zbatery.git (mirror)

You may browse the code from the web and download the latest snapshot
tarballs here:

* http://git.bogomips.org/cgit/zbatery.git (cgit)
* http://repo.or.cz/w/zbatery.git (gitweb)

Inline patches (from "git format-patch") to the mailing list are
preferred because they allow code review and comments in the reply to
the patch.

We will adhere to mostly the same conventions for patch submissions as
git itself.  See the Documentation/SubmittingPatches document
distributed with git on on patch submission guidelines to follow.  Just
don't email the git mailing list or maintainer with Zbatery patches.

== Tests

There currently are no tests specific to Zbatery.  Keep in mind that
Zbatery is only a small shim to drive Rainbows! (and Unicorn)
underneath.  Rainbows! and Unicorn both have extensive (but very
UNIX-specific) test suites.

== Contact

All feedback (bug reports, user/development discussion, patches, pull
requests) go to the mailing list/newsgroup.  We are currently
borrowing the Rainbows! mailing list since most of our code (and
problems) are related to Rainbows! mailto:rainbows-talk@rubyforge.org.

# heads (aka `branches'):
$ git for-each-ref --sort=-creatordate refs/heads \
	--format='%(HEAD) %(refname:short) %(subject) (%(creatordate:short))'
* master       README: reference yahns (2015-03-01)

# tags:
$ git for-each-ref --sort=-creatordate refs/tags \
	--format='%(refname:short) %(subject) (%(creatordate:short))'
v4.2.0       zbatery 4.2.0 (2014-05-14) tar.gz
v4.1.2       Zbatery 4.1.2 - we don't fork, but our apps may! (2011-12-05) tar.gz
v4.1.1       Zbatery 4.1.1 - small bugfix (2011-09-02) tar.gz
v4.1.0       Zbatery 4.1.0 - pull in latest changes from unicorn 4.1.0 (2011-08-20) tar.gz
v4.0.0       Zbatery 4.0.0 - another Rainbows! resync (2011-06-27) tar.gz
v3.4.0       Zbatery 3.4.0 - another Rainbows! resync (2011-05-21) tar.gz
v3.3.0       Zbatery 3.3.0 - another Rainbows! resync (2011-05-16) tar.gz
v3.1.0       Zbatery 3.1.0 - we stole release notes from Rainbows! (2011-02-11) tar.gz
v3.0.0       Zbatery 3.0.0 - Rainbows! 3.0.0 resync (2011-01-11) tar.gz
v0.6.0       Zbatery 0.6.0 - Rainbows! 2.1.x resync (2010-12-29) tar.gz
...

git clone https://yhbt.net/zbatery.git