Time2Code:適合任何編程語言的無伺服器代碼編輯器框架
技術資訊,第一時間送達!
這是一款便攜、可擴展的基於Web的代碼編輯器,你可以將其整合到自己的代碼中進行學習體驗。
我們的目標是讓你能夠更輕鬆更愉快地部署你自己的基於Web的代碼編輯器。
GIF/1.2M
技術概覽
代碼執行後端是由基於無伺服器的FaaS框架構建而成,具有良好的可擴展性和支持多種語言。通過faas-netes可以支持k8s,並且似乎運行良好。
用戶界面仿照的是Play-with-Moby網站。而Play-With-Docker網站使得我們的Docker學習體驗更加完美。
函數處理和代碼執行通過Python進程來實現。Python接收所有函數請求的標準輸入,然後將其傳遞給其他語言進行解釋執行或編譯執行。
網站用Flask作為框架,並以Swarm服務的形式來運行。
代碼編輯器由Ace Editor項目構建而成。
終端由XTermJS構建而成。
啟動和運行
Docker Swarm
下面的代碼片段將初始化swarm、Time2Code、FaaS以及time2code函數。
$ docker swarm init --advertise-addr eth0 &&
git clone https://github.com/JockDaRock/Time2Code &&
cd Time2Code &&
bash time2deploy.sh &&
docker service ls
請用瀏覽器訪問 http://127.0.0.1:5555 並開始編寫代碼。
Kubernetes (minikube)
在啟動之前,你需要安裝minikube。
鍵入以下命令會啟動minikube,並將faas-netes載入到kube集群中。
$ git clone https://github.com/JockDaRock/Time2Code
$ minikube start或者$ minikube start --vm-driver=xhyve
然後運行下面的bash腳本來載入Faas和Times2Code。
$ bash ./minikube.sh
一旦腳本運行完成,它將會顯示像 http://192.168.99.100:31114/ 這樣的URL,通過這個URL可以以訪問Time2Code網路編輯器。 在開始使用之前,你需要在FaaS服務啟動後部署代碼執行功能。 所有必需的Kube pod可能需要一兩分鐘才能運行起來。你可以用kubectl get pods來檢查是否啟動文成。
你可以在終端中使用下面這個命令來部署函數。
$ faas-cli -action deploy -f ./time2code-faas-cli-minikube.yml
用於代碼執行的kube pods運行起來之後,你就可以開始編碼了
最新的消息
Time2Code:函數即服務和代碼即函數(https://medium.com/@JockDaRock/time2code-functions-as-service-and-code-as-a-function-3d9125fc49fb)
目前支持編碼的語言
Python、Golang、Powershell、NodeJS等等,其他語言很快將添加進來。
我目前正在開發C#代碼的執行。大部分的測試案例都運行成功,但需要解決一些必要的依賴性和其他問題。
特定於語言的代碼執行處理程序
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)
路線圖和貢獻
目前正在進行中的:
在代碼執行功能中加入markdown和指令功能。
為代碼執行功能添加語言依賴項生成器。
支持Kubernetes
Time2Code主要是用Python開發的,以MIT授權許可發布,這意味著不論是提供反饋意見、測試現有的或新的功能,還是挖掘源代碼中的bug都是受歡迎的。這個項目仍處於早期階段,所以我需要人們廣泛地進行測試。我需要有人來幫我為不同語言以及語言提示構建新的代碼執行處理程序。我也需要有人來幫我減小微軟語言處理器的映像大小(PowerShell 和C#)。
作者丨JockDaRock
翻譯丨雁驚寒
點擊展開全文
※測試人員職業發展之路
※Angular 有哪些地方比 Vue 更優秀?
※9 款最好的免費博客網站全對比
※史上最明了的「編程語言琅琊榜」介紹,比如Python是電鋸
TAG:CSDN |
※用彙編語言編寫TCP Bind Shell的菜鳥教程
※自製Monkey編程語言編譯器:增加數組操作API和Mapsh數據類型
※Julia官宣:為機器學習構建一種語言和編譯器
※Facebook新研究:一個編碼器hold住93種語言!跨語言遷移無需修改
※Rockstar:能寫出詩歌般代碼的編程語言
※VSCode 引入 Python 語言伺服器;Canonical 請求幫助測試 Ubuntu 伺服器安裝程序
※Salmon:一個基於Python語言的郵件伺服器
※DeepMind提出空間語言集成模型SLIM,有效編碼自然語言的空間關係
※Oracle 發布通用型虛擬機 GraalVM 1.0,支持多種編程語言
※最適合兒童的編程語言-Python
※CEVA和mPerpetuo合作為CEVA視覺處理器提供Halide語言支持
※Canonical宣布Kotlin編程語言Snap包格式上線
※GitHub機器學習代碼分類器:300種編程語言僅憑代碼輕鬆鑒別
※符合語言習慣的Python優雅編程技巧
※符合語言習慣的 Python 優雅編程技巧
※MIT正式發布編程語言Julia 1.0:Python、R、C+三合一
※【AI蝙蝠俠vs超人】LeCun論戰Manning:語言是通用智能的鑰匙?
※Pony 編程語言簡介
※如何在 Linux 中安裝 Rust 編程語言
※C語言/C加加編程嵌入式基礎學習之volatile關鍵字