Hangi Scala web çerçeveleri mevcuttur? [kapalı]


196

Scala öğrenmeye yeni başladım ve ilk uygulayacağım küçük bir web uygulaması. Erlang'ı geçen yıl sunucu tarafı yazılım uygulamak için kullanıyorum , ancak daha önce hiç web uygulaması yazmadım. Harika bir deneyim olacak.

Scala için Lift haricinde web çerçeveleri var mı?

Beni yanlış anlamayın, Lift harika görünüyor. Sadece aralarında seçim yapabilmem için kaç tane çerçeve olduğunu bilmek istiyorum. Bir seçim yapmak her zaman iyidir, ama bulduğum tek şey Lift'ti.

Yanıtlar:


77

Scala ile çok ilgileniyorum, ama henüz kullanmadım, bu yüzden bu uyarı ile, farkında olduğum çerçeveler HRJ'nin cevabında (Lift, Sweet, Slinky) belirtilmedi:


3
İlginç. Asansör açık arayla en yoğun şekilde tanıtılan: ona aşina olmadığınızı merak ediyorum.
mcherm

13
Not: "... HRJ'nin farkındayım ve bundan bahsetmedim ..." HRJ zaten Lift'ten bahsetti. Teşekkürler
bn.

6
oyun da bir scala sürümü var
islon

1
/ iç çekerim. <rant> Adım gayet iyi bir isim, neden Scalatra'ya geçelim? Express.js, Nodatra olarak adlandırılmaz. Şişeye (tamamen aynı değil, yakın) Pythatra denmez. </rant>
Dave Jensen

1
@ djensen47 kendi geliştirmek için her zaman ücretsiz;)
BAR

45

Bununla ilgili bir blog yazısı yazdım .

Özetlemek gerekirse, seçeneklerden bazıları şunlardır:

  1. asansör
  2. Tatlı
  3. daracık

Sonunda hiçbirinin benim için uygun olmadığını buldum ve kendi küçük "çerçevemi" geliştirdim. (Henüz açık kaynak değildir).


35

Lift'i seviyorum ;-)

Oyun, Scala dostu web çerçeveleri için ikinci tercihim.

Wicket benim üçüncü tercihim.


46
David, Lift'i nasıl duydun? ;-)
Derek Mahar

6
@Derek Mahar İçerideki işime inanıyorum ;-)

5
Lift ile bağlantılı olduğunuz anlaşılıyor. Kendi kendine tanıtım politikamızın , bu bilgileri bu gibi yanıtlarda açıklamanızı gerektirdiğini lütfen unutmayın .
josliber

35

Aşağıdaki çerçeve bir dökümü. Aslında onları kullandığım anlamına gelmez:

  • Coeus . Scala için geleneksel bir MVC web çerçevesi.

  • Filtrelenmemiş . Scala'da HTTP isteklerine hizmet vermek için bir araç seti.

  • Uniscala Granit .

  • Gardel

  • Mondo

  • Amore . Ruby web çerçevesinin Satra limanı Sinatra

  • XML'yi ölçeklendirir . XML kullanımına esnek yaklaşım ve XML ile etkileşimin basitleştirilmiş bir yolu.

  • Kemer . Scalaz-HTTP üzerine kurulmuş web uygulamaları için Rack benzeri bir arayüz

  • Frank . Skaler / Kemer üzerine inşa edilmiş web uygulaması DSL

  • MixedBits . Scala program geliştirme dilinin web siteleri oluşturmasına yardımcı olacak bir çerçeve

  • Circumflex . Scala programlama dilini kullanarak uygulama geliştirme için birkaç bağımsız açık kaynak projesini birleştirir.

  • Scala Webmachine . Port of Basho'nun web uygulamaları oluşturmak için REST tabanlı bir sistem olan Scala'daki web makinesi

  • Melon . RESTful, çok kanallı hazır bir Scala web çerçevesi


1
Filtrelenmemiş burada iyi bir slayt gösterisi var: bağlantı
Rick-777

Bowlerframework ekledim (sadece web'de buldum).
Adam Gent



8

Filtrelenmemiş'i çok ilginç buluyorum https://github.com/unfiltered/unfiltered .

IttayD listesinde yer alıyor.

İşte bununla ilgili bir sunum http://unfiltered.lessis.me/#0 ve http://code.technically.us/post/942531598/doug-tangren-presents-the-unfiltered-toolkit-for videosu

Ayrıca burada daha fazla bilgi içeren bir makale var http://code.technically.us/post/998251172/holding-the-parameter


1
Filtrelenmemiş çok, çok havalı. Gerçekten temiz & fonksiyonel ama çok karmaşık değil.
thatismatt

8

Wicket ve Scala'ya da büyük bir ilgi olduğu unutulmamalıdır . Wicket şaşırtıcı bir şekilde Scala'ya uyar. Çok olgun Wicket projesinden ve ekosisteminden (uzantıları) ve Scala'nın kısa sözdiziminden ve verimlilik avantajından yararlanmak istiyorsanız, bu sizin için olabilir!

Ayrıca bakınız:

  1. Bazı prosa

  2. Sunum

  3. Wicket ve Scala ile biraz deneyim

  4. Scala kapaklarını modellere bağlamak için tutkal koduna yönelik projeye atıfta bulunan duyurular


7

Oyun çok tatlı.

Artık üretime hazır. Şunlardan oluşur: havalı bir şablon çerçevesi, kaynak dosyalarının kasaya otomatik olarak yeniden yüklenmesi, birleştirilebilir bir eylem sistemi, akka mükemmelliği, vb.

Typesafe Yığını'nın bir parçası .

İki proje için kullandıktan sonra, oldukça sorunsuz çalıştığını ve yeni web çerçeveleri öğrenmek istediğinizde göz önünde bulundurmanız gereken bir şey olduğunu söyleyebilirim.


5

Ben RESTul web uygulamaları yazmak için Jersey (Scala, Java veya Groovy güzel kaynak fasulye yazabilirsiniz) kullanarak JAX-RS kullanma eğilimindedir . Sonra çeşitli şablon dillerinden birini ( JADE , Scaml , Ssp (Scala Server Pages), Bıyık , vb.) Kullanarak görünümleri oluşturmak için Scalate'i kullanıyorum .


Scalate projeleri geliştirmek için hangi IDE'yi kullandığınızı bilmek isterim?
Ali Shakiba

1
Tüm gelişimim için IntelliJ kullanıyorum
James Strachan

4

Scala Web Sayfaları adında yeni bir web çerçevesi var . Siteden:

Hedef kitle

Scala Pages web çerçevesi, Java geçmişinden gelen ve Scala'da web uygulamaları programlamak isteyen web programcılarına hitap edecektir. Vurgu fonksiyonel programlama yerine OOP üzerindedir.

Özellikleri ve Özellikleri

  • Model-view-controller paradigmasına bağlı kalır
  • Metin tabanlı şablon motoru
  • Basit sözdizimi: $variableve<?scp-instruction?>
  • Kodlama / içerik algılama, uluslararası metin kodlamalarını işleyebilme
  • Özel etiketler yerine parçacıklar
  • URL Yeniden Yazma

4

Prikrutil, sanırım aynı gemideyiz. Erlang'dan Scala'ya da geldim. Nitrojen'i çok seviyorum ve bundan esinlenerek bir Scala web çerçevesi oluşturmaya karar verdim.

Xitrum'a bir göz atın . Dokümanı oldukça geniştir. README'den:

Xitrum, Netty ve Hazelcast'in üstünde bir asenkron ve kümelenmiş Scala web çerçevesi ve web sunucusudur:

  • Scalatra ve Lift arasındaki boşluğu doldurur: Scalatra'dan daha güçlü ve Lift'ten daha kolay kullanılır. Hem RESTful API'leri hem de geri gönderimleri kolayca oluşturabilirsiniz. Xitrum, önce Scalatra gibi kontrolördür, önce Lift gibi görünmez.
  • Ek açıklama, URL rotaları için JAX-RS ruhuyla kullanılır. Tüm güzergahları tek bir yerde beyan etmek zorunda değilsiniz.
  • Tipesafe, Scala ruhunda.
  • Astyc, Netty'in ruhuyla.
  • Oturumlar çerezlerde veya kümelenmiş Hazelcast'te saklanabilir.
  • jQuery Validation, tarayıcı tarafı ve sunucu tarafı doğrulaması için entegre edilmiştir. i18n GNU gettext kullanarak, diğer birçok çözümün aksine, hem tekil hem de çoğul formlar desteklenir.
  • ETag kullanarak koşullu GET.

Hazelcast ayrıca:

  • İşlem sırasında ve kümelenmiş önbellek için ayrı önbellek sunucularına ihtiyacınız yoktur.
  • İşlem içi ve kümelenmiş Comet, Comet'i birden çok web sunucusuna ölçeklendirebilirsiniz.

Hızlı bir başlangıç için öğreticiyi izleyin .


3

Bitbucket üzerinde eskiden ama aktarılır var Pinky da var GitHub'dan .

Bu arada, github Scala projelerini aramak için harika bir yer, çünkü orada çok şey var.


3

Bu listeye kendi çabalarımı eklemek istiyorum. Daha fazla bilgiyi burada bulabilirsiniz:

parlak çerçeve

Erken gelişimde ve hala agresif bir şekilde çalışıyorum. Gibi özellikleri içerir:

  • Basitlik ve genişletilebilirliğe odaklanın.
  • Entegre oluşturma aracı.
  • Modüler tasarım; bazı ilk modüller tarama, e-posta, jms, jpa, squeryl, cassandra, cron hizmetleri ve daha fazlasını destekler.
  • Basit RESTful denetleyiciler ve eylemler.

Herhangi bir geri bildirim çok takdir edilmektedir.

GÜNCELLEME: 2011-09-078, 0.9.1 sürümüne büyük bir güncelleme gönderdim. Http://brzy.org adresinde bir ekran görüntüsü içeren daha fazla bilgi var .


1

Hem Sweet hem de Slinky yaklaşık bir yıl boyunca habersiz görünüyor. Sweet Maven repo sweetsoftwaredesign.com öldü, bu yüzden bağımlılıkları indirmenin bir yolu bile yok.


1

Not: Spiffy modası geçmiş.

< plug >

Güzel :

  • Scala'da yazıldı
  • Akka kütüphanesini ve aktörlerini ölçeklendirmek için kullanıyor
  • eşzamansız istek işleme için sunucu uygulaması API 3.0'ı kullanır
  • modülerdir (bileşenlerin değiştirilmesi basittir)
  • istemediğiniz kodu kesmek için DSL'leri kullanır
  • şablonlama için Scalate ve Freemarker'ı destekler

Spiffy, Scala, Akka (bir Scala aktör uygulaması) ve Java Servlet 3.0 API'sini kullanan bir web çerçevesidir. Eşzamansız arabirimi kullanır ve web uygulamaları için büyük ölçüde paralel ve ölçeklenebilir bir ortam sağlamayı amaçlar. Spiffy'nin çeşitli bileşenleri, küçük miktarlarda çok hızlı iş yapan ve talebi boru hattındaki bir sonraki bileşene teslim eden bağımsız minimalist modüller olmaları gerektiği fikrine dayanmaktadır. Son bileşen istek işlendikten sonra, isteği "tamamlayarak" ve istemciye geri göndererek sunucu uygulaması kapsayıcısına sinyal gönderir.

https://github.com/mardambey/spiffy

< / plug >


0

Şunu da deneyebilirsiniz Bağlam . Bir Java çerçevesi olarak tasarlanmıştır, ancak Scala ile de sorunsuz bir şekilde kullandım. Bileşen tabanlı bir çerçevedir ve Lift veya Goblen ile benzer özelliklere sahiptir.


0

Birkaç hafta önce sorunuzu tökezledim, ancak o zamandan beri Circumflex'i de öğrendim . Bu, öğrenmesi kolay olan güzel ve minimal bir çerçevedir ve oldukça iyi belgelere sahiptir.

Minimalliğin yanı sıra, diğer kütüphanelerle de iyi çalıştığını iddia ediyor ve ihtiyacınız olduğunda kendi uygulamalarınızı kullanmanıza izin veriyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.