Swift로 쉽게 만드는 Web Application Server (Trevi : Open Source project)

요즘 Swift로 웹 프로그래밍을 할수 있는 Framework가 많이 등장하고 있습니다.
그중에 Trevi라는 대학생들이 만들고 있는 Swift Web Application Server 오픈소스가 있습니다.
친숙한 User Interface 와 비동기 기반을 서버를 만들기 위해서 노력하고 있으며,
MVC, View엔진(ssp), Routing을 지원하고 미들웨어로 불리는 커스텀 확장모듈이 가능합니다.
아래 코드는 기본 HttpServer 코드와
import Trevi
let server = Http ()
do {
try server.createServer( { req , res in
return res.send("hello trevi!")
}).listen(8080)
} catch {
//error
}외부 묘듈 Trevi를 사용한 application server 코드 입니다.
let server = Http ()
let lime = Lime()
lime.use(BodyParser())
lime.use(Favicon())
lime.use(SwiftServerPage())
lime.use("/",Root())
lime.use(ServeStatic())
lime.use(){ req, res in
res.status = 404
return res.send ("404 Pages Not Found")
}
do {
try server.createServer ( lime ).listen (8080)
} catch {
}
루트로 사용된 Root module 코드
root.use ("/", Index ())
root.get ( "/trevi" ) { req, res in
let msg = "Hello Trevi!"
return res.send ( msg )
}
root.get( "/param/:arg", { req, res in
var msg = "Request path : \(req.path)<br>"
msg += "Found parameter : <br>\(req.params)"
return res.send ( msg )
})
root.get("/redir"){ req , res in
return res.redirect(url: "http://127.0.0.1:8080/trevi")
}
root.post("/post") { (req, res) -> Bool in
return res.send("post data")
}Swift가 함수형 프로그래밍이 가능하기 때문에 비동기 이벤트 기반으로 유명한
No**.js 아키텍처를 분석하면서 개발중입니다. 아직은 리눅스로 작업 하는중이며,
응답처리와 요청처리에가 미흡하여 계속해서 진행중인 프로젝트 입니다.
유명한 Framework와 비교하면 아직 부족하지만 끝없이 달려가고 있습니다.
필드에서 활동하신 분들의 피드백과 참여로 더 멋진 프로젝트가 되길 바랍니다.
제가 만들고 있어서 상업성 홍보는 아니고... 그래도 정보는 정보이기에.... 여기에 올렸구요!.
혹여 문제가 된다면. 피드 부탁드립니다.
Repo : https://github.com/Yoseob/Trevi