首頁 web前端 js教程 介紹我們的下一代 JavaScript SDK

介紹我們的下一代 JavaScript SDK

Dec 05, 2024 am 02:21 AM

Introducing our Next-Generation JavaScript SDK

作者:Till Schneidereit

今天我們很高興地宣布推出全新的 JavaScript SDK。該 SDK 完全重寫了我們之前的 JavaScript SDK,大大改善了生態系統相容性、標準合規性、穩健性和關鍵新功能。

此版本也讓我們走上了一條顯著提高效能並持續改進與現有 JavaScript 應用程式相容性的道路。

同時,我們保留了與先前的 SDK 的高度相容性,因此對於大多數用戶來說升級應該很簡單。

讓我們更詳細地了解此版本的新增功能和差異。

建立在 SpiderMonkey、StarlingMonkey 和 ComponentizeJS 的強大基礎之上

先前的 SDK 建構在 QuickJS JavaScript 引擎和 Javy 運行時之上,而新 SDK 構建在 Firefox 瀏覽器的 SpiderMonkey 引擎、字節碼聯盟的 StarlingMonkey 運行時和 ComponentizeJS WIT 綁定生成器之上。

這些項目共同為我們的 SDK 提供了極佳的基礎:

  • SpiderMonkey 是為 Firefox 瀏覽器提供支援的 JavaScript 引擎。它已經開發了 20 多年,每天有數百萬用戶使用,可以說達到了只有大型瀏覽器引擎才能達到的成熟度。
  • StarlingMonkey 是我們與 Fastly 的朋友一起建立的 JavaScript 運行時,並為字節碼聯盟做出了貢獻。它以高度模組化的方式建構在 SpiderMonkey 之上,可以輕鬆根據我們的用例進行配置。至關重要的是,它實現了關鍵Web API 的實現,可顯著提高與Web 生態系統的兼容性,例如用於處理傳出HTTP 請求的fetch API、用於處理傳入請求的Service Workers 規範的關鍵部分、使用串流處理請求和回應主體Web 的Streams API StreamssetTimeout 和setInterval。
  • **ComponentizeJS **是一個可以在 JavaScript 中使用 WIT 介面描述語言定義的外部介面的工具。這使得不僅可以輕鬆使用 Spin 提供的介面以及 WASI 中包含的接口,還可以輕鬆使用其他 WebAssembly 元件中實現的功能,包括用 Rust、Go、Python 或 C/C 等其他語言編寫的元件。

引擎蓋下的徹底改變,表面上的小調整

如上所述,我們的 JS 支援的新實作與舊實作幾乎沒有什麼不同。好消息是,由於 JavaScript 具有異常強大的規範,我們可以完成這一切,而無需冒微妙破壞現有程式碼的風險。雖然新的 SDK 附帶了稍微調整的 API,在升級現有專案時也需要進行同樣微小的更改,但完全替換底層平台不會對相容性產生任何影響。

從那裡,他們就可以開始利用新 SDK 帶來的新功能。值得注意的是,我們調整了 API,以便輕鬆整合串流 HTTP 主體,而無需完全重寫現有程式碼。

基於標準的新 API

我們在 fetch API 和 Service Workers 規範標準之上實現了對現有 API 的支援(稍作調整的版本)。如果開發人員願意,可以選擇直接使用這些標準,從而大大提高與更廣泛的 Web 和 JS 生態系統的兼容性。

標準也以完全不同的方式提供幫助:由於所有HTTP 支援現在都是使用wasi-http 構建的,因此使用新SDK 構建的、不使用我們也支援的Spin 特定API 的應用程式也可以運行在任何支援wasi-http 的環境中,例如Wasmtime 和Node.js(透過JCO)。

只是開始

在此版本中,我們專注於以直接相容的方式更改JavaScript 支援的底層平台,同時已經獲得了對現代Web 標準的支援、與其他WebAssembly 元件的可組合性以及為未來奠定更強大和成熟的基礎發展。

展望未來,我們將看到效能、相容性和新功能的快速改進。先睹為快,作品中一些最令人興奮的進展是:

  • 效能改善:Fastly 團隊一直致力於 WebAssembly 中 JavaScript 執行的顯著效能改進。這項工作的第一次迭代剛剛整合到 StarlingMonkey 中,並且已經使執行速度提高了數倍,具體取決於具體的工作負載。該整合昨天剛剛完成,因此尚未整合到我們的 JS SDK 中,但很快就會整合。
  • 提高了與 Web 和 JavaScript 生態系統的兼容性:我們即將對 StarlingMonkey 進行一項關鍵改進:能夠使用 Rust 而不是 C 來實現運行時本身的部分內容以及它提供的 Web API 。這將使您更容易跟上 Web 生態系統的最新發展,並提供更完整和相容的 Web API 實現,這對於與現有 JavaScript 應用程式的兼容性至關重要。並非所有 JS 程式碼都使用基於(網路)標準的 API:許多程式碼都使用 Node.js API。我們正在努力為這些 API 提供相容層,以便開發人員可以在他們的 Spin 應用程式中使用它們。
  • 支援更多觸發器類型:目前,新的 JavaScript SDK 僅支援 HTTP 觸發器。我們正在努力添加對更多觸發器類型的支持,例如 Cron 和 Redis 觸發器。 ## 保持聯繫 我們很高興能夠與您分享這個新的 SDK,並且在我們不斷改進它的過程中期待您的反饋和貢獻。請加入 Fermyon Discord 伺服器中的聊天或我們的每週專案會議,並在 X(以前稱為 Twitter)@fermyontech 和 @spinframework 上關注我們!

以上是介紹我們的下一代 JavaScript SDK的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1655
14
CakePHP 教程
1413
52
Laravel 教程
1306
25
PHP教程
1252
29
C# 教程
1226
24
前端熱敏紙小票打印遇到亂碼問題怎麼辦? 前端熱敏紙小票打印遇到亂碼問題怎麼辦? Apr 04, 2025 pm 02:42 PM

前端熱敏紙小票打印的常見問題與解決方案在前端開發中,小票打印是一個常見的需求。然而,很多開發者在實...

神秘的JavaScript:它的作用以及為什麼重要 神秘的JavaScript:它的作用以及為什麼重要 Apr 09, 2025 am 12:07 AM

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

誰得到更多的Python或JavaScript? 誰得到更多的Python或JavaScript? Apr 04, 2025 am 12:09 AM

Python和JavaScript開發者的薪資沒有絕對的高低,具體取決於技能和行業需求。 1.Python在數據科學和機器學習領域可能薪資更高。 2.JavaScript在前端和全棧開發中需求大,薪資也可觀。 3.影響因素包括經驗、地理位置、公司規模和特定技能。

如何實現視差滾動和元素動畫效果,像資生堂官網那樣?
或者:
怎樣才能像資生堂官網一樣,實現頁面滾動伴隨的動畫效果? 如何實現視差滾動和元素動畫效果,像資生堂官網那樣? 或者: 怎樣才能像資生堂官網一樣,實現頁面滾動伴隨的動畫效果? Apr 04, 2025 pm 05:36 PM

實現視差滾動和元素動畫效果的探討本文將探討如何實現類似資生堂官網(https://www.shiseido.co.jp/sb/wonderland/)中�...

JavaScript的演變:當前的趨勢和未來前景 JavaScript的演變:當前的趨勢和未來前景 Apr 10, 2025 am 09:33 AM

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

如何使用JavaScript將具有相同ID的數組元素合併到一個對像中? 如何使用JavaScript將具有相同ID的數組元素合併到一個對像中? Apr 04, 2025 pm 05:09 PM

如何在JavaScript中將具有相同ID的數組元素合併到一個對像中?在處理數據時,我們常常會遇到需要將具有相同ID�...

JavaScript引擎:比較實施 JavaScript引擎:比較實施 Apr 13, 2025 am 12:05 AM

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

前端開發中如何實現類似 VSCode 的面板拖拽調整功能? 前端開發中如何實現類似 VSCode 的面板拖拽調整功能? Apr 04, 2025 pm 02:06 PM

探索前端中類似VSCode的面板拖拽調整功能的實現在前端開發中,如何實現類似於VSCode...

See all articles