Skip to content

Commit

Permalink
Merge pull request #1265 from yhirano55/update_readme
Browse files Browse the repository at this point in the history
Update README
  • Loading branch information
rafaelfranca committed Apr 19, 2018
2 parents d578847 + dea4dcf commit 377c546
Showing 1 changed file with 44 additions and 34 deletions.
78 changes: 44 additions & 34 deletions README.rdoc
@@ -1,25 +1,32 @@
= Rack, a modular Ruby webserver interface {<img src="https://secure.travis-ci.org/rack/rack.svg" alt="Build Status" />}[http://travis-ci.org/rack/rack] {<img src="https://gemnasium.com/rack/rack.svg" alt="Dependency Status" />}[https://gemnasium.com/rack/rack]
= \Rack, a modular Ruby webserver interface

Rack provides a minimal, modular, and adaptable interface for developing
web applications in Ruby. By wrapping HTTP requests and responses in
{<img src="https://rack.github.io/rack-logo.png" width="400" alt="rack powers web applications" />}[https://rack.github.io/]

{<img src="https://secure.travis-ci.org/rack/rack.svg" alt="Build Status" />}[https://travis-ci.org/rack/rack]
{<img src="https://gemnasium.com/rack/rack.svg" alt="Dependency Status" />}[https://gemnasium.com/rack/rack]

\Rack provides a minimal, modular, and adaptable interface for developing
web applications in Ruby. By wrapping HTTP requests and responses in
the simplest way possible, it unifies and distills the API for web
servers, web frameworks, and software in between (the so-called
middleware) into a single method call.

The exact details of this are described in the Rack specification,
which all Rack applications should conform to.
The exact details of this are described in the \Rack specification,
which all \Rack applications should conform to.

== Supported web servers

The included *handlers* connect all kinds of web servers to Rack:
The included *handlers* connect all kinds of web servers to \Rack:

* WEBrick
* FCGI
* CGI
* SCGI
* LiteSpeed
* Thin

These web servers include Rack handlers in their distributions:
These web servers include \Rack handlers in their distributions:

* Agoo
* Ebb
* Fuzed
Expand All @@ -32,12 +39,13 @@ These web servers include Rack handlers in their distributions:
* uWSGI
* yahns

Any valid Rack app will run the same on all these handlers, without
Any valid \Rack app will run the same on all these handlers, without
changing anything.

== Supported web frameworks

These frameworks include Rack adapters in their distributions:
These frameworks include \Rack adapters in their distributions:

* Camping
* Coset
* Espresso
Expand All @@ -61,8 +69,9 @@ These frameworks include Rack adapters in their distributions:

== Available middleware

Between the server and the framework, Rack can be customized to your
Between the server and the framework, \Rack can be customized to your
applications needs using middleware, for example:

* Rack::URLMap, to route to multiple applications inside the same process.
* Rack::CommonLogger, for creating Apache-style logfiles.
* Rack::ShowException, for catching unhandled exceptions and
Expand All @@ -71,33 +80,34 @@ applications needs using middleware, for example:
* ...many others!

All these components use the same interface, which is described in
detail in the Rack specification. These optional components can be
detail in the \Rack specification. These optional components can be
used in any way you wish.

== Convenience

If you want to develop outside of existing frameworks, implement your
own ones, or develop middleware, Rack provides many helpers to create
Rack applications quickly and without doing the same web stuff all
own ones, or develop middleware, \Rack provides many helpers to create
\Rack applications quickly and without doing the same web stuff all
over:

* Rack::Request, which also provides query string parsing and
multipart handling.
* Rack::Response, for convenient generation of HTTP replies and
cookie handling.
* Rack::MockRequest and Rack::MockResponse for efficient and quick
testing of Rack application without real HTTP round-trips.
testing of \Rack application without real HTTP round-trips.

== rack-contrib

The plethora of useful middleware created the need for a project that
collects fresh Rack middleware. rack-contrib includes a variety of
add-on components for Rack and it is easy to contribute new modules.
collects fresh \Rack middleware. rack-contrib includes a variety of
add-on components for \Rack and it is easy to contribute new modules.

* https://github.com/rack/rack-contrib

== rackup

rackup is a useful tool for running Rack applications, which uses the
rackup is a useful tool for running \Rack applications, which uses the
Rack::Builder DSL to configure middleware and build up applications
easily.

Expand All @@ -121,7 +131,7 @@ By default, the lobster is found at http://localhost:9292.

== Installing with RubyGems

A Gem of Rack is available at rubygems.org. You can install it with:
A Gem of \Rack is available at {rubygems.org}[https://rubygems.org/gems/rack]. You can install it with:

gem install rack

Expand All @@ -132,7 +142,7 @@ at my site:

== Running the tests

Testing Rack requires the bacon testing framework:
Testing \Rack requires the bacon testing framework:

bundle install --without extra # to be able to run the fast tests

Expand All @@ -142,7 +152,7 @@ Or:

There is a rake-based test task:

rake test tests all the tests
rake test # tests all the tests

The testsuite has no dependencies outside of the core Ruby
installation and bacon.
Expand Down Expand Up @@ -180,7 +190,7 @@ run on port 11211) and memcache-client installed.

== Configuration

Several parameters can be modified on Rack::Utils to configure Rack behaviour.
Several parameters can be modified on Rack::Utils to configure \Rack behaviour.

e.g:

Expand All @@ -202,19 +212,19 @@ The default is 128, which means that a single request can't upload more than 128

Set to 0 for no limit.

Can also be set via the RACK_MULTIPART_PART_LIMIT environment variable.
Can also be set via the +RACK_MULTIPART_PART_LIMIT+ environment variable.

== History

See <https://github.com/rack/rack/blob/master/HISTORY.md>.
See {HISTORY.md}[https://github.com/rack/rack/blob/master/HISTORY.md].

== Contact

Please post bugs, suggestions and patches to
the bug tracker at <https://github.com/rack/rack/issues>.
the bug tracker at {issues}[https://github.com/rack/rack/issues].

Please post security related bugs and suggestions to the core team at
<https://groups.google.com/group/rack-core> or rack-core@googlegroups.com. This
<https://groups.google.com/forum/#!forum/rack-core> or rack-core@googlegroups.com. This
list is not public. Due to wide usage of the library, it is strongly preferred
that we manage timing in order to provide viable patches at the time of
disclosure. Your assistance in this matter is greatly appreciated.
Expand All @@ -223,14 +233,15 @@ Mailing list archives are available at
<https://groups.google.com/forum/#!forum/rack-devel>.

Git repository (send Git patches to the mailing list):

* https://github.com/rack/rack
* http://git.vuxu.org/cgi-bin/gitweb.cgi?p=rack-github.git

You are also welcome to join the #rack channel on irc.freenode.net.

== Thanks

The Rack Core Team, consisting of
The \Rack Core Team, consisting of

* Leah Neukirchen (chneukirchen[https://github.com/chneukirchen])
* James Tucker (raggi[https://github.com/raggi])
Expand All @@ -241,7 +252,7 @@ The Rack Core Team, consisting of
* Santiago Pastorino (spastorino[https://github.com/spastorino])
* Konstantin Haase (rkh[https://github.com/rkh])

and the Rack Alumnis
and the \Rack Alumnis

* Ryan Tomayko (rtomayko[https://github.com/rtomayko])
* Scytrin dai Kinthra (scytrin[https://github.com/scytrin])
Expand Down Expand Up @@ -273,17 +284,16 @@ would like to thank:
* Alexander Kellett for testing the Gem and reviewing the announcement.
* Marcus Rückert, for help with configuring and debugging lighttpd.
* The WSGI team for the well-done and documented work they've done and
Rack builds up on.
\Rack builds up on.
* All bug reporters and patch contributors not mentioned above.

== Links

Rack:: <https://rack.github.io/>
Official Rack repositories:: <https://github.com/rack>
Rack Bug Tracking:: <https://github.com/rack/rack/issues>
rack-devel mailing list:: <https://groups.google.com/group/rack-devel>
Rack's Rubyforge project:: <http://rubyforge.org/projects/rack>
\Rack:: <https://rack.github.io/>
Official \Rack repositories:: <https://github.com/rack>
\Rack Bug Tracking:: <https://github.com/rack/rack/issues>
rack-devel mailing list:: <https://groups.google.com/forum/#!forum/rack-devel>

== License

Rack is released under the {MIT License}[https://opensource.org/licenses/MIT].
\Rack is released under the {MIT License}[https://opensource.org/licenses/MIT].

0 comments on commit 377c546

Please sign in to comment.