Rack (Webserver-Interface)
Rack: ein Ruby-Webserver-Interface
| |
---|---|
Logo | |
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 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 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
- Rack Project
- Rack Schnittstellenspezifikation
- Rack wiki github
- Rack at Google Groups
- Rack-compliant applications
- Thin Ruby web server
- The introductory blog post
- Rack Yehuda Katz
- Rack coding contest
- jackjs, a JavaScript clone of Rack
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