Sinatra (Software)
Sinatra ist ein freies Webframework und eine in Ruby geschriebene domänenspezifische Sprache. Es ist eine Alternative zu anderen Ruby-Frameworks wie Ruby on Rails, Nitro, Camping und Rango. Sinatra setzt das Rack-Webserver-Interface voraus.
Sinatra | |
---|---|
Basisdaten | |
Entwickler | Blake Mizerany (Maintainer: Konstantin Haase) |
Aktuelle Version | 2.1.0 (5. September 2020) |
Betriebssystem | plattformübergreifend |
Programmiersprache | Ruby |
Kategorie | Webframework |
Lizenz | MIT-Lizenz |
deutschsprachig | nein |
www.sinatrarb.com |
Sinatra wurde von Blake Mizerany entworfen und entwickelt und soll kompakt und flexibel sein. Es folgt nicht dem MVC-Muster, das in anderen Frameworks, wie zum Beispiel Ruby on Rails, zur Anwendung kommt. Stattdessen strebt Sinatra an, Webapplikationen schnell und mit minimalem Aufwand entwickeln zu können.[1]
Einige bedeutende Firmen verwenden Sinatra, zum Beispiel Apple[2], die BBC[3], LinkedIn[4], Engine Yard, Heroku, GitHub und Songbird[5]. Heroku stellt einen großen Teil der Finanzierung von Sinatra zur Verfügung[6].
Sinatra wurde 2007 erstellt und unter eine Open-Source-Lizenz gestellt.
Beispiele
Beispiel 1: eine Webapp in einer Datei
Eine Hallo-Welt Webapplikation kann beispielsweise so aussehen:
#!/usr/bin/env ruby
require 'sinatra'
get '/' do
redirect to('/hello/World')
end
get '/hello/:name' do
"Hello #{params[:name]}!"
end
Gestartet wird ein solches Programm mit:
$ ruby test.rb
Öffnet man im Browser:
http://localhost:4567
Kann man die Ausgabe Hello World! im Browser-Fenster sehen. Ruft man hingegen die URL
http://localhost:4567/hello/Ada
auf, so kann man die Ausgabe Hello Ada! im Browser-Fenster sehen.
Beispiel 2: HTML-Code in der Webapp
Es ist möglich, HTML-Code mit ERuby (erb) in den Quellcode einzubauen:
#!/usr/bin/env ruby
require 'sinatra'
get '/' do
erb :main
end
__END__
@@main
<!doctype html>
<html lang="en">
<head>
<title>Welcome page</title>
<meta charset="utf-8">
</head>
<body>
<header>
<h1>Welcome World!</h1>
</header>
<p>Welcome to this Website!
</p>
</body>
</html>
Von Sinatra beeinflusste Frameworks
Sinatra hat etliche Microframeworks in Ruby und anderen Programmiersprachen inspiriert. Normalerweise versuchen solche Frameworks, die domänenspezifische Sprache (DSL) von Sinatra möglichst gut nachzubilden.
- Ruby: Almost Sinatra,[7] Astaire,[8] Cuba,[9] Padrino (basierend auf Sinatra),[10] Pakyow,[11] Renee[12]
- PHP: Fat-Free,[13] Fitzgerald,[14] Glue,[15] klein,[16] Laravel,[17] Limonade,[18] MiMViC,[19] Silex,[20] Slim[21]
- JavaScript: Express,[22] Picard,[23] Roundabout,[24] Sammy[25]
- CoffeeScript: Zappa[26]
- Python: Bottle,[27] Denied[28] (was an April Fools joke[29]), Flask,[30] itty,[31] Juno[32]
- Erlang (Programmiersprache): Fresh,[33] Spooky[34]
- Groovy: Graffiti,[35] Ratpack[36]
- Scala: Scalatra,[37] BlueEyes[38]
- .NET: Martin,[39] Nancy,[40] Nina[41]
- Perl: Dancer, Mojolicious[42]
- Java: Spark,[43] Napalm,[44] Htmleasy[45]
- Haskell: Bird,[46] Loli[47]
- Fancy: Sinatra.fy[48]
- Bash: Astley,[49] sh.inatra[50]
- C: Bogart[51]
- F#: Frank[52]
- Lua: Mercury,[53] Orbit[54]
- Mirah: Shatner[55]
- Objective-C: RCRouter[56]
- Vala: Valatra[57]
- Nim: Jester[58]
Im Juli 2011 diskreditierte ein Individuum oder eine Gruppe, die sich als Mitglieder des Sinatra-Teams ausgaben, das Dancer-Projekt. Dieser Vorfall hat dazu geführt, dass das Sinatrateam öffentlich das Dancer-Projekt und andere Nachbauten guthieß.[59]
Literatur
- Alan Harris, Konstantin Haase: Sinatra: Up And Running (First ed.). O’Reilly Media, 2012, ISBN 978-1-4493-0423-2, S. 120.
Weblinks
- Sinatra Website auf sinatrarb.com
- Sinatra’s GitHub repository auf github.com
- Video of Blake Mizerany and Adam Wiggins. auf rubyconf2008.confreaks.com
Einzelnachweise
- Sinatra: Getting Started. In: sinatrarb.com. Abgerufen am 29. Januar 2012 (englisch).
- Open Source software used by Apple. Abgerufen am 20. Januar 2012.
- BBC Zeitgeist. Archiviert vom (nicht mehr online verfügbar) am 28. November 2010; abgerufen am 29. Januar 2012. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- JRubyfying LinkedIn’s Front-end. Abgerufen am 29. Januar 2012 (englisch).
- Sinatra in The Wild. Abgerufen am 29. Januar 2012.
- Sinatra: About. Abgerufen am 29. Januar 2012.
- Almost Sinatra
- Astaire
- Cuba
- Padrino
- Pakyow
- Renee
- Fat-Free
- Fitzgerald
- Glue (Memento des vom 8. Juli 2011 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.
- klein
- Laravel
- Limonade
- MiMViC (Seite nicht mehr abrufbar, festgestellt im Dezember 2018. Suche in Webarchiven) Info: Der Link wurde automatisch als defekt markiert. Bitte prüfe den Link gemäß Anleitung und entferne dann diesen Hinweis.
- Silex (Memento des vom 30. April 2015 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.
- Slim
- Express
- Picard
- Roundabout
- Sammy
- Zappa
- Bottle (Memento des vom 10. Januar 2011 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.
- Denied (Memento des vom 4. September 2011 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.
- Armin Ronacher: April 1st Post Mortem
- Flask
- itty
- Juno
- Fresh
- Spooky
- Graffiti
- Ratpack
- Scalatra
- BlueEyes
- Martin
- Nancy
- Nina
- Mojolicious::Lite
- Spark
- Napalm (Seite nicht mehr abrufbar, festgestellt im Dezember 2018. Suche in Webarchiven) Info: Der Link wurde automatisch als defekt markiert. Bitte prüfe den Link gemäß Anleitung und entferne dann diesen Hinweis.
- Htmleasy
- Bird
- Loli (Memento des vom 14. Februar 2010 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.
- Sinatra.fy
- Astley
- sh.inatra
- Bogart
- Frank (Memento des vom 13. Oktober 2011 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.
- Mercury
- Orbit
- Shatner
- RCRouter
- Valatra
- Jester
- "Sinatra Loves Dancer"