rackup
provides a command line interface for running a Rack-compatible application. It also provides a generic interface for starting a rack
-compatible server: Rackup::Handler
. It is not designed for production use.
-- For Puma $ gem install rackup puma -- For Falcon $ gem install rackup falcon
In a directory with your config.ru
simply run the command:
Your application should now be available locally, typically http://localhost:9292
.
You can also use Rackup::Handler
to start a server programmatically:
require 'rackup' # Use the default server: handler = Rackup::Handler.default handler.run(app, **options) # Use a specific server: handler = Rackup::Handler.get('puma') handler.run(app, **options)
Do not require specific handlers or assume they will exist/work. Instead, use the default
method to get the best available handler.
For a long time, rackup
(the executable and implementation) was part of rack
, and webrick
was the default server, included with Ruby. It made it easy to run a Rack application without having to worry about the details of the server - great for documentation and demos.
When webrick
was removed from the Ruby standard library, rack
started depending on webrick
as a default server. Every web application and server would pull in webrick
as a dependency, even if it was not used. To avoid this, the rackup
component of rack
was moved to this gem, which depended on webrick
.
However, many libraries (e.g. rails
) still depend on rackup
and end up pulling in webrick
as a dependency. To avoid this, the decision was made to cut webrick
as a dependency of rackup
. This means that rackup
no longer depends on webrick
, and you need to install it separately if you want to use it.
As a consequence of this, the value of the rackup
gem is further diminished. In other words, why would you do this:
$ gem install rackup puma $ rackup ...
when you can do this:
$ gem install puma $ puma ...
In summary, the maintainers of rack
recommend the following:
rackup
if possible. rackup
as an executable made sense when webrick shipped with Ruby, so there was always a fallback. But that hasn't been true since Ruby 3.0.config.ru
files, so that users can use the webserver program of their choice directly (e.g. puma, falcon).rackup
and Rackup::Handler
interfaces, but we encourage users to invoke the server command directly if possible.We welcome contributions to this project.
git checkout -b my-new-feature
).git commit -am 'Add some feature'
).git push origin my-new-feature
).RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4