Time2Code適用性很廣的編輯器框架
推薦 + 挑錯(cuò) + 收藏(0) + 用戶評(píng)論(0)
技術(shù)概覽
代碼執(zhí)行后端是由基于無(wú)服務(wù)器的FaaS框架構(gòu)建而成,具有良好的可擴(kuò)展性和支持多種語(yǔ)言。通過(guò)faas-netes可以支持k8s,并且似乎運(yùn)行良好。
用戶界面仿照的是Play-with-Moby網(wǎng)站。而Play-With-Docker網(wǎng)站使得我們的Docker學(xué)習(xí)體驗(yàn)更加完美。
函數(shù)處理和代碼執(zhí)行通過(guò)Python進(jìn)程來(lái)實(shí)現(xiàn)。Python接收所有函數(shù)請(qǐng)求的標(biāo)準(zhǔn)輸入,然后將其傳遞給其他語(yǔ)言進(jìn)行解釋執(zhí)行或編譯執(zhí)行。
網(wǎng)站用Flask作為框架,并以Swarm服務(wù)的形式來(lái)運(yùn)行。
代碼編輯器由Ace Editor項(xiàng)目構(gòu)建而成。
終端由XTermJS構(gòu)建而成。
啟動(dòng)和運(yùn)行
Docker Swarm
下面的代碼片段將初始化swarm、Time2Code、FaaS以及time2code函數(shù)。
$ docker swarm init --advertise-addr eth0 &&
git clone https://github.com/JockDaRock/Time2Code &&
cd Time2Code &&
bash time2deploy.sh &&
docker service ls
請(qǐng)用瀏覽器訪問(wèn) http://127.0.0.1:5555 并開(kāi)始編寫(xiě)代碼。
Kubernetes (minikube)
在啟動(dòng)之前,你需要安裝minikube。
鍵入以下命令會(huì)啟動(dòng)minikube,并將faas-netes加載到kube集群中。
$ git clone https://github.com/JockDaRock/Time2Code
$ minikube start 或者$ minikube start --vm-driver=xhyve
然后運(yùn)行下面的bash腳本來(lái)載入Faas和Times2Code。
$ bash 。/minikube.sh
一旦腳本運(yùn)行完成,它將會(huì)顯示像 http://192.168.99.100:31114/ 這樣的URL,通過(guò)這個(gè)URL可以以訪問(wèn)Time2Code網(wǎng)絡(luò)編輯器。 在開(kāi)始使用之前,你需要在FaaS服務(wù)啟動(dòng)后部署代碼執(zhí)行功能。 所有必需的Kube pod可能需要一兩分鐘才能運(yùn)行起來(lái)。你可以用kubectl get pods來(lái)檢查是否啟動(dòng)文成。
你可以在終端中使用下面這個(gè)命令來(lái)部署函數(shù)。
$ faas-cli -action deploy -f 。/time2code-faas-cli-minikube.yml
用于代碼執(zhí)行的kube pods運(yùn)行起來(lái)之后,你就可以開(kāi)始編碼了 :)

最新的消息
Time2Code:函數(shù)即服務(wù)和代碼即函數(shù)(https://medium.com/@JockDaRock/time2code-functions-as-service-and-code-as-a-function-3d9125fc49fb)
目前支持編碼的語(yǔ)言
Python、Golang、Powershell、NodeJS等等,其他語(yǔ)言很快將添加進(jìn)來(lái)。
我目前正在開(kāi)發(fā)C#代碼的執(zhí)行。大部分的測(cè)試案例都運(yùn)行成功,但需要解決一些必要的依賴性和其他問(wèn)題。
特定于語(yǔ)言的代碼執(zhí)行處理程序
Python(https://github.com/JockDaRock/Time2Py)
Golang(https://github.com/JockDaRock/Time2Go)
NodeJS(https://github.com/JockDaRock/Time2NodeJS)
Powershell(https://github.com/JockDaRock/Time2Powershell)
C#(https://github.com/JockDaRock/Time2CSharp)
路線圖和貢獻(xiàn)
目前正在進(jìn)行中的:
在代碼執(zhí)行功能中加入markdown和指令功能。
為代碼執(zhí)行功能添加語(yǔ)言依賴項(xiàng)生成器。
支持Kubernetes
Time2Code主要是用Python開(kāi)發(fā)的,以MIT授權(quán)許可發(fā)布,這意味著不論是提供反饋意見(jiàn)、測(cè)試現(xiàn)有的或新的功能,還是挖掘源代碼中的bug都是受歡迎的。這個(gè)項(xiàng)目仍處于早期階段,所以我需要人們廣泛地進(jìn)行測(cè)試。我需要有人來(lái)幫我為不同語(yǔ)言以及語(yǔ)言提示構(gòu)建新的代碼執(zhí)行處理程序。我也需要有人來(lái)幫我減小微軟語(yǔ)言處理器的映像大?。≒owerShell 和C#)。
非常好我支持^.^
(0) 0%
不好我反對(duì)
(0) 0%
