有關Perfect
Swift的開源使得用Swift寫服務端的代碼成為可能,Perfect是一款用Swift寫的服務端開源框架嗎假颇,類似的開源框架還有Vapor等毅否,但是我們可以進入Perfect Github主頁看一下衡蚂,這個框架目前有著11818 stars,是目前star最多的Swift端開源框架伪很,這也是為什么我選擇用Perfect的原因。
配置以及要求
Swift3.0
如果你的電腦上的Swift版本低于3.0 Perfect是無法進行編譯運行的
Mac OS系統(tǒng)或者是Linux系統(tǒng)奋单。
Perfect框架可以在Ubuntu Linux 14.04 and 15.10環(huán)境下運行锉试,當然在Mac OS上運行是絕對沒問題的。
Swift環(huán)境配置
Mac OS
我們打開終端在里面輸入命令 $ swift --version
如果我們看到類似下方的結(jié)果就說明Swift環(huán)境是OK的了
Apple Swift version 3.1 (swiftlang-802.0.53 clang-802.0.42)
Target: x86_64-apple-macosx10.9
Ubuntu Linux
首先下載Swift3.0的安裝包
打開鏈接 https://swift.org/download/#releases览濒,下載對應系統(tǒng)版本的包呆盖, 筆者下載的是 https://swift.org/builds/swift-3.0-release/ubuntu1510/swift-3.0-RELEASE/swift-3.0-RELEASE-ubuntu15.10.tar.gz,可以直接用瀏覽器下載解壓贷笛,也可以用終端命令操作:
$ wget https://swift.org/builds/swift-3.0-release/ubuntu1510/swift-3.0-RELEASE/swift-3.0-RELEASE-ubuntu15.10.tar.gz
等待下載完成以后应又,手動點擊解壓或者執(zhí)行命令解壓:
$ sudo tar xzf swift-3.0-RELEASE-ubuntu15.10.tar.gz
然后安裝RPM包:
$ sudo apt-get -y install clang libicu-dev
為Swift 設置環(huán)境變量:
$ gedit ~/.bashrc
在最后一行輸入你Swift所在路徑內(nèi)的/usr/bin,例如我的如下:
$ export PATH=/home/momo/swift/swift-3.0-RELEASE-ubuntu15.10/usr/bin:"${PATH}"
保存后昨忆,退出終端重新打開丁频,輸入指令可以看到對應的版本號:
$ swift --version
如果看到
Swift version 3.1.1 (swift-3.1.1-RELEASE)
Target: x86_64-unknown-linux-gnu
那么恭喜你成功了
萬事俱備只欠Perfect
Perfect依賴于若干軟件接口庫,比如OpenSSL邑贴、libssl-dev和uuid-dev席里。所以我們還需要安裝一下這些內(nèi)容
打開終端輸入命令:
$ brew install openssl
//Linux 中換成
$ sudo apt-get install openssl libssl-dev uuid-dev
OK,現(xiàn)在我們來安裝Perfect
打開終端分別輸入如下命令:
$ git clone https://github.com/PerfectlySoft/PerfectTemplate.git
$ cd PerfectTemplate
$ swift build
$ .build/debug/PerfectTemplate
在"swift build"命令運行時你需要稍等片刻,在運行完最后一個命令后如果您看到:
Starting HTTP server on 0.0.0.0:8181 with document root ./webroot
OK,您已經(jīng)離勝利不遠啦
現(xiàn)在我們只要打開瀏覽器輸入http://0.0.0.0:8181/您就能看到熟悉的“hello world”拢驾,至此我們已經(jīng)成功搭建了Perfect環(huán)境了奖磁。
如果您是尊貴的Mac用戶,你也可以打開終端輸入:
$ swift package generate-xcodeproj
等成功以后就可以在項目根目錄中找到熟悉的Xcode工程文件繁疤,此時您打開該工程文件--熟悉的Command + R咖为,打開瀏覽器輸入http://0.0.0.0:8181/,同樣是熟悉的"hello world"