Rack (Webserver-Interface)
Rack stellt eine minimale, modulare und adaptive Schnittstelle für die Entwicklung von Webapplikationen in der Programmiersprache Ruby bereit. Durch das Wrappen von HTTP-Requests und HTTP-Responses, das auf möglichst einfache Weise erfolgt, vereinheitlicht es die Schnittstelle für Webserver, Webframeworks und die Software dazwischen, sogenannte Middleware, und destilliert diese Zugriffe zu einem einzigen Methodenaufruf.
Rack: ein Ruby-Webserver-Interface | |
---|---|
Basisdaten | |
Entwickler | Leah Neukirchen; James Tucker, Michael Fellinger, Konstantin Haase, Aaron Patterson |
Aktuelle Version | 1.5.2 (2013-02-07) |
Betriebssystem | plattformunabhängig |
Programmiersprache | Ruby |
Kategorie | Middleware |
Lizenz | MIT License |
rack.github.io |
Rack wird in fast allen Webframeworks und Weblibraries in der Ruby-Welt benutzt, zum Beispiel von Ruby On Rails und Sinatra. Es ist als Ruby Gem[1] verfügbar.
Rack hat bereits ein Framework in der JavaScript-Welt (jackjs)[2] und eines in der Perl-Welt (Plack) inspiriert und stellt in der Ruby-Welt einen De-facto-Standard der Rack-Kompatibilität (englisch "rack-compliant") dar.[3]
Beispielapplikation
Eine Rack-kompatible "Hello World"-Applikation in Ruby syntax:
require 'rack'
app = Proc.new do |env|
body = "Hello, World!"
['200', {'Content-Type' => 'text/html', 'Content-Length' => body.length.to_s}, [body]]
end
Rack::Handler::WEBrick.run app
Siehe auch
- Web Server Gateway Interface (Python)
- Perl Web Server Gateway Interface
- Python Paste
- FastCGI
- Servlet (Java)
- Server-side JavaScript
- Apache JServ Protocol
- Internet Communications Engine
- Etch (Protokoll) (Cisco)
- Internet Server API (Microsoft)
- Ring (Clojure)
Weblinks
Einzelnachweise
- https://rubygems.org/gems/rack/
- jackjs.org (Memento des Originals vom 17. Dezember 2014 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- rubyinside.com