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
BearbeitenBeispiel 1: eine Webapp in einer Datei
BearbeitenEine 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
BearbeitenEs 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
BearbeitenSinatra 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
Bearbeiten- Alan Harris, Konstantin Haase: Sinatra: Up And Running (First ed.). O’Reilly Media, 2012, ISBN 978-1-4493-0423-2, S. 120.
Weblinks
Bearbeiten- Sinatra Website auf sinatrarb.com
- Sinatra’s GitHub repository auf github.com
- Video of Blake Mizerany and Adam Wiggins. auf rubyconf2008.confreaks.com
Einzelnachweise
Bearbeiten- ↑ 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 ( 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 ( 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 ( 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 ( 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 ( 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 ( 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"