어떤 스칼라 웹 프레임 워크를 사용할 수 있습니까? [닫은]


196

방금 Scala를 배우기 시작했으며 가장 먼저 구현할 것은 작은 웹 응용 프로그램입니다. 작년에 Erlang 을 사용하여 서버 측 소프트웨어를 구현해 왔지만 이전에는 웹 응용 프로그램을 작성한 적이 없습니다. 좋은 경험이 될 것입니다.

리프트를 제외하고 Scala에 대한 웹 프레임 워크가 있습니까?

틀리지 마, 리프트가 멋져 보여 프레임 워크가 몇 개인 지 알고 싶어서 프레임 워크 중에서 선택할 수 있습니다. 항상 선택하는 것이 좋지만 내가 찾은 유일한 것은 Lift였습니다.

답변:


77

나는 Scala에 매우 관심이 있지만 아직 그것을 사용하지 않았으므로 그 경고와 함께 HRJ의 답변 (Lift, Sweet, Slinky)에 언급되지 않은 프레임 워크 는 다음과 같습니다.


3
흥미 롭군 리프트는 지금까지 가장 많이 홍보되었습니다. 익숙하지 않은 것이 궁금합니다.
mcherm

13
참고 진술 "... HRJ는 알고 있지만 언급하지 않았습니다 ..."HRJ는 이미 Lift를 언급했습니다. 감사합니다
bn.

6
놀이 는 스칼라 버전도 있습니다
islon

1
/ me 한숨. <rant> 단계는 완벽하게 좋은 이름입니다. 왜 Scalatra로 변경해야합니까? Express.js는 Nodatra라고하지 않습니다. 플라스크 (정말 같지는 않지만 가까운)를 피탓 트라라고 부릅니다. </ rant>
데이브 젠슨

1
@ djensen47 당신은 항상 자유롭게 자신을 개발할 수 있습니다;)
BAR

45

나는 이것에 관한 블로그 게시물을 썼다 .

요약하면 일부 옵션은 다음과 같습니다.

  1. 승강기
  2. 슬링 키

나는 마침내 나에게 적합한 것이 없다는 것을 알았고, 내 작은 "프레임 워크"를 개발했다. (아직 오픈 소스가 아닙니다).


35

나는 리프트를 좋아한다 ;-)

Play는 스칼라 친화적 인 웹 프레임 워크에 대한 두 번째 선택입니다.

Wicket은 나의 세 번째 선택입니다.


46
데이비드, 리프트에 대해 어떻게 알게 되셨습니까? ;-)
Derek Mahar 2016 년

6
@Derek Mahar 내가 믿습니다 ;-)

5
Lift와 제휴 한 것으로 보입니다. 우리 있습니다 자기 진흥 정책은 이와 같은 답변이 정보를 공개하도록 요구합니다.
josliber

35

다음은 프레임 워크 덤프입니다. 내가 실제로 사용한 것은 아닙니다.

  • Coeus . 스칼라를위한 전통적인 MVC 웹 프레임 워크.

  • 필터링되지 않았습니다 . 스칼라에서 HTTP 요청을 서비스하기위한 툴킷.

  • Uniscala 화강암 .

  • 가델

  • 몬도

  • 아모레 . Ruby 웹 프레임 워크 Sinatra의 스칼라 포트

  • XML을 확장 합니다. XML 처리에 대한 유연한 접근 방식과 XML과의 간단한 상호 작용 방식.

  • 벨트 . Scalaz-HTTP 위에 구축 된 웹 애플리케이션을위한 랙형 인터페이스

  • 프랭크 . Scalaz / Belt 위에 구축 된 웹 애플리케이션 DSL

  • MixedBits . 웹 사이트 구축을 돕는 Scala 프로그램 언어 프레임 워크

  • 곡절 . Scala 프로그래밍 언어를 사용하여 응용 프로그램 개발을 위해 여러 개의 독립적 인 오픈 소스 프로젝트를 통합합니다.

  • 스칼라 웹 머신 . 웹 애플리케이션 구축을위한 REST 기반 시스템 인 Scala에있는 Port of Basho의 웹 머신

  • 볼러 . RESTful, 다중 채널 지원 스칼라 웹 프레임 워크


1
Unfiltered는 여기에 좋은 슬라이드 쇼를 가지고 있습니다 : link
Rick-777

볼링 프레임 워크를 추가했습니다 (웹에서 찾았습니다).
Adam Gent



8

Unfiltered는 매우 흥미로운 https://github.com/unfiltered/unfiltered를 찾습니다 .

IttayD의 목록에 언급되어 있습니다.

여기에 http://unfiltered.lessis.me/#0 및 비디오 http://code.technically.us/post/942531598/doug-tangren-presents-the-unfiltered-toolkit-for에 대한 프레젠테이션이 있습니다 .

또한 여기에 자세한 정보가있는 기사가 있습니다 http://code.technically.us/post/998251172/holding-the-parameter


1
필터링되지 않은 것은 매우 시원합니다. 정말 깨끗하고 기능적이지만 너무 복잡하지는 않습니다.
thatismatt

8

WicketScala 에도 상당한 관심이있다 . Wicket은 스칼라와 놀랍도록 잘 맞습니다. 매우 성숙한 Wicket 프로젝트와 그 생태계 (확장자)와 Scala의 간결한 구문 및 생산성 이점을 활용하려면이 것이 당신을위한 것일 수 있습니다!

또한보십시오:

  1. 일부 프로 사

  2. 표시

  3. Wicket과 Scala에 대한 경험

  4. 스칼라 클로저를 모델에 바인딩하는 글루 코드의 프로젝트에 대한 공지


7

놀이 는 꽤 달콤합니다.

이제 생산 준비가되었습니다. 멋진 템플릿 프레임 워크, 안전 할 때 소스 파일을 자동으로 다시로드, 컴포저 블 액션 시스템, akka awesomeness 등이 포함됩니다.

Typesafe 스택 의 일부입니다 .

두 가지 프로젝트에 사용하면 꽤 원활하게 작동하며 다음에 새로운 웹 프레임 워크를 배울 때 고려해야 할 사항이라고 말할 수 있습니다.


5

나는 Jersey 를 사용하여 JAX-RS를 사용하는 경향이 있습니다 (Scala, Java 또는 Groovy에서 멋진 리소스 bean을 작성할 수 있음). RESTul 웹 응용 프로그램을 작성하십시오. 그런 다음 다양한 템플릿 언어 ( JADE , Scaml , Ssp (Scala Server Pages), Mustache 등) 중 하나를 사용하여 뷰를 렌더링하는 데 Scalate 를 사용 합니다.


Scalate 프로젝트를 개발하기 위해 어떤 IDE를 사용하는지 알고 싶습니다.
알리 Shakiba

1
모든 개발에 IntelliJ를 사용합니다
James Strachan

4

Scala Web Pages 라는 새로운 웹 프레임 워크가 있습니다 . 사이트에서 :

대상 고객

Scala Pages 웹 프레임 워크는 Java 배경에서 왔으며 Scala에서 웹 응용 프로그램을 프로그래밍하려는 웹 프로그래머에게 호소력이 있습니다. 기능적 프로그래밍보다는 OOP에 중점을 둡니다.

특징과 특징

  • 모델 뷰 컨트롤러 패러다임 준수
  • 텍스트 기반 템플릿 엔진
  • 간단한 구문 : $variable<?scp-instruction?>
  • 국제 텍스트 인코딩을 처리 할 수있는 인코딩 / 콘텐츠 감지
  • 맞춤 태그 대신 스 니펫
  • URL 재 작성

4

Prikrutil, 우리는 같은 보트에 있다고 생각합니다. 나는 또한 Erlang에서 Scala에 왔습니다. 나는 질소 를 많이 좋아해서 그것에 영감을받은 스칼라 웹 프레임 워크를 만들기로 결정했습니다.

Xitrum을 살펴 보십시오 . 그 문서 는 매우 광범위합니다. README에서 :

Xitrum은 Netty 및 Hazelcast를 기반으로하는 비동기식 클러스터 스칼라 웹 프레임 워크 및 웹 서버입니다.

  • Scalatra와 Lift의 간격을 메 웁니다. Scalatra보다 강력하고 Lift보다 사용하기 쉽습니다. RESTful API와 포스트 백을 쉽게 생성 할 수 있습니다. Xitrum은 Scalatra와 같은 컨트롤러 우선 순위이며 Lift와 같은 뷰 우선 순위는 아닙니다.
  • 주석은 JAX-RS의 정신으로 URL 경로에 사용됩니다. 한 곳에서 모든 경로를 선언 할 필요는 없습니다.
  • 스칼라의 정신으로, 타입 세이프.
  • Netty의 정신으로 비동기하십시오.
  • 세션은 쿠키 또는 클러스터 된 Hazelcast에 저장 될 수 있습니다.
  • jQuery 유효성 검사는 브라우저 쪽 및 서버 쪽 유효성 검사를 위해 통합되었습니다. GNU gettext를 사용하는 i18n은 대부분의 다른 솔루션과 달리 단수형과 복수형이 모두 지원됩니다.
  • ETag를 사용한 조건부 GET.

Hazelcast는 또한 다음을 제공합니다.

  • 인 프로세스 및 클러스터 캐시, 별도의 캐시 서버가 필요하지 않습니다.
  • In-process 및 Clustered Comet을 사용하면 Comet을 여러 웹 서버로 확장 할 수 있습니다.

빠른 시작을 위해 학습서 를 따르십시오 .



3

이 목록에 본인의 노력을 추가하고 싶습니다. 자세한 내용은 여기를 참조하십시오.

brzy framework

초기 개발 단계에 있으며 여전히 적극적으로 노력하고 있습니다. 다음과 같은 기능이 포함되어 있습니다.

  • 단순성과 확장성에 중점을 둡니다.
  • 통합 빌드 도구.
  • 모듈 식 디자인; 일부 초기 모듈에는 스칼 레이트, 이메일, jms, jpa, squeryl, cassandra, cron 서비스 등이 포함됩니다.
  • 간단한 RESTful 컨트롤러 및 작업.

모든 의견은 대단히 감사합니다.

업데이트 : 2011-09-078, 방금 0.9.1 버전의 주요 업데이트를 게시했습니다. http://brzy.org 에는 스크린 캐스트가 포함 된 추가 정보가 있습니다 .


1

Sweet와 Slinky는 약 1 년 동안 유지되지 않은 것처럼 보입니다. Sweet Maven repo sweetsoftwaredesign.com은 죽었으므로 종속성을 다운로드 할 수있는 방법조차 없습니다.


1

참고 : Spiffy는 오래되었습니다.

< 플러그 >

스파이 :

  • 스칼라로 작성
  • 환상적인 Akka 라이브러리와 배우를 사용하여 확장
  • 비동기식 요청 처리를 위해 서블릿 API 3.0을 사용합니다.
  • 모듈 식 (부품 교체가 간단 함)
  • DSL을 사용하여 원하지 않는 코드를 줄입니다.
  • 템플릿 용 Scalate 및 Freemarker 지원

Spiffy는 Scala, Akka (Scala actor 구현) 및 Java Servlet 3.0 API를 사용하는 웹 프레임 워크입니다. 비동기 인터페이스를 사용하며 웹 응용 프로그램을 위해 대규모 병렬 및 확장 가능한 환경을 제공하는 것을 목표로합니다. Spiffy의 다양한 구성 요소는 모두 소량의 작업을 매우 빠르게 수행하고 파이프 라인의 다음 구성 요소로 요청을 전달하는 독립적 인 최소한의 모듈이어야한다는 아이디어를 기반으로합니다. 마지막 컴포넌트가 요청을 처리 한 후에는 요청을 "완료"하고 클라이언트로 다시 전송하여 서블릿 컨테이너에 신호를 보냅니다.

https://github.com/mardambey/spiffy

< / 플러그 >


0

Context 시도 할 수도 있습니다 . Java 프레임 워크로 설계되었지만 어려움없이 Scala와 함께 성공적으로 사용했습니다. 컴포넌트 기반 프레임 워크이며 Lift 또는 Tapestry와 유사한 특성을 갖습니다.


0

몇 주 전에 귀하의 질문을 우연히 발견했지만 그 이후로 Circumflex에 대해서도 배웠습니다. . 이것은 배우기 쉬운 훌륭하고 최소한의 프레임 워크이며, 꽤 유용한 문서도 있습니다.

최소한의 것 외에도 다른 라이브러리와 잘 작동한다고 주장하며 필요할 때 자체 구현을 사용할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.