
Goja 完全用Go編寫的JS引擎
Goja 是一個完全用 Go 編寫的 ECMAScript 5.1/JavaScript 引擎,它側(cè)重于標(biāo)準(zhǔn)遵從性和性能。Goja 使得開發(fā)者能夠在純 Go 項目中執(zhí)行 JavaScript 代碼,以此來解決 Go 和 JavaScript 間的通信難題。
該項目由 otto 啟發(fā),但在執(zhí)行效率和 ES5.1 特性支持上做了大量的提升和完善。Goja 不僅支持 ECMAScript 5.1 標(biāo)準(zhǔn),包括正則表達式和嚴格模式,還實現(xiàn)了部分 ES6 的功能,并且正在努力實現(xiàn)對更多 ES6 功能的支持。此外,Goja 還支持 sourcemaps,能夠運行 Babel、TypeScript 編譯器等 ES5 編寫的工具。
如何使用
首先需要確保你的環(huán)境中已安裝 Go 1.20 或更高版本。然后,通過以下 Go 命令安裝 Goja:
go?get?github.com/dop251/goja
安裝完成后,你可以開始在項目中使用 Goja 來執(zhí)行 JavaScript 代碼了。下面是一個簡單的示例,展示如何執(zhí)行一段 JavaScript 代碼并獲取結(jié)果:
const?SCRIPT?=`function?sum(a,?b)?{????return?+a?+?b;}`vm?:=?goja.New()_,?err?:=?vm.RunString(SCRIPT)if?err?!=nil{? panic(err)}sum,?ok?:=?goja.AssertFunction(vm.Get("sum"))if!ok?{? panic("Not?a?function")}res,?err?:=?sum(goja.Undefined(),?vm.ToValue(40),?vm.ToValue(2))if?err?!=nil{? panic(err)}fmt.Println(res)//?Output:?42
項目推介
Goja 項目適用于需要在 Go 環(huán)境下執(zhí)行 JavaScript 代碼的各種場景,比如用作腳本引擎、實現(xiàn)動態(tài)功能等。由于是純 Go 實現(xiàn),Goja 避免了 cgo 的依賴和開銷,使得構(gòu)建和跨平臺部署變得更加簡單,無論是在 Linux、Windows 還是 MacOS 系統(tǒng)上。此外,Goja 正在積極地實現(xiàn)部分 ES6 功能,對于追求新技術(shù)的開發(fā)者來說,使用 Goja 將使你始終站在技術(shù)的前沿。
以下是該項目 Star 趨勢圖(代表項目的活躍程度):
更多項目詳情請查看如下鏈接。
開源項目地址:https://github.com/dop251/goja
開源項目作者:dop251
[超站]友情鏈接:
四季很好,只要有你,文娛排行榜:https://www.yaopaiming.com/
關(guān)注數(shù)據(jù)與安全,洞悉企業(yè)級服務(wù)市場:https://www.ijiandao.com/

隨時掌握互聯(lián)網(wǎng)精彩
- 1 看總書記關(guān)心的清潔能源這樣發(fā)電 7904660
- 2 今年最強臺風(fēng)來襲 7809288
- 3 澳加英宣布承認巴勒斯坦國 7713203
- 4 長春航空展這些“首次”不要錯過 7617258
- 5 43歲二胎媽媽患阿爾茨海默病 7523513
- 6 iPhone 17橙色斜挎掛繩賣斷貨 7424229
- 7 女兒發(fā)現(xiàn)父親500多萬遺產(chǎn)用于保健 7333364
- 8 英國航母從南海“溜了” 7237252
- 9 中國消失的森林正“全盤復(fù)活” 7139593
- 10 三所“零近視”小學(xué)帶來的啟示 7040964