將傳統應用帶入瀏覽器的開源先鋒「GitHub 熱點速覽」

削微寒發表於2024-07-16

現代瀏覽器已經不再是簡單的瀏覽網頁的工具,其潛能正在透過技術不斷地被挖掘和擴充套件。得益於 WebAssembly 等技術的出現,讓瀏覽器能夠以接近原生的速度執行非 JavaScript 語言編寫的程式,從而開啟了瀏覽器的“潘多拉魔盒”。

開源組織 Leaning Technologies 正是這一方面的先鋒,他們開發的 Cheerp、CheerpJ 和 CheerpX 等開源專案,使 C/C++、Java、Flash 和 x86 程式能夠在瀏覽器中流暢地執行,它們正在逐步打破傳統桌面應用程式和 Web 應用之間的“壁壘”。

  • Cheerp:執行在瀏覽器裡的 C/C++ 編譯器
  • CheerpJ:執行在瀏覽器裡的 Java 虛擬機器和執行時環境
  • CheerpX:執行在瀏覽器裡的 x86 虛擬機器

比如本週的開源熱搜專案,基於 CheerpX 引擎的 WebVM 開源專案,它支援使用者在瀏覽器中執行完整的 Linux 環境,無需下載和安裝。開源的 Web 應用防火牆 BunkerWeb,讓你的 Web 預設配置變得安全。極小的 fetch 封裝庫 Wretch,讓前端請求資料更加輕鬆愜意。在瀏覽器裡控制多臺 Android 裝置的平臺 stf,最佳化 React 元件效能的工具 million 也是讓人眼前一亮。

最後是一週漲了近 1w Star 微軟開源的新型 RAG 框架 GraphRAG 和 LLM 一站式開發和部署工具 LitGPT。

  • 本文目錄
    • 1. 開源熱搜專案
      • 1.1 在瀏覽器中執行 Linux 虛擬機器:WebVM
      • 1.2 開源的 Web 應用防火牆:BunkerWeb
      • 1.3 輕量且直觀的 fetch 庫:Wretch
      • 1.4 一站式的 LLM 開發和部署工具:LitGPT
      • 1.5 微軟開源的 RAG 框架:GraphRAG
    • 2. HelloGitHub 熱評
      • 2.1 瀏覽器控制多臺 Android 裝置的平臺:stf
      • 2.2 最佳化 React 元件效能的工具:million
    • 3. 結尾

1. 開源熱搜專案

1.1 在瀏覽器中執行 Linux 虛擬機器:WebVM

主語言:JavaScriptStar:3.5k周增長:600

該專案可以讓使用者在瀏覽器中執行 Linux 虛擬機器,無需伺服器、完全客戶端的虛擬環境。它基於 CheerpX 虛擬化引擎,提供了一個安全、沙盒的 x86 虛擬環境,可執行二進位制檔案、命令列工具、文字編輯器、編譯 C/C++ 程式和 Python 等語言的指令碼,登入後還能訪問網際網路,適用於演示和快速訪問 Linux 開發環境等場景。

GitHub 地址→github.com/leaningtech/webvm

1.2 開源的 Web 應用防火牆:BunkerWeb

主語言:PythonStar:4.9k周增長:1.1k

該專案是用 Python 開發的 Web 應用防火牆,可以無縫整合至現有環境(Linux、Docker、K8s 等)。它基於 Nginx 構建、預設配置安全,擁有簡單易用的 Web 介面,支援自動配置 HTTPS A+ 評級、安全 Header 和豐富的外掛系統,可檢測常見的攻擊模式、限制訪問、防止機器人和爬蟲等惡意訪問,保護你的網站、API 和 Web 應用。

GitHub 地址→github.com/bunkerity/bunkerweb

1.3 輕量且直觀的 fetch 庫:Wretch

主語言:TypeScriptStar:4.6k

這是一個極小、型別安全、圍繞 fetch API 構建的網路請求封裝庫。它提供了通俗易懂的網路請求 API,簡化了網路請求錯誤處理和序列化,同時壓縮後僅 2KB 大小,支援主流瀏覽器併相容 Node.js,適用於各種前端 HTTP 請求的場景。

wretch("anything")
  .get()
  .notFound(error => { /* ... */ })
  .unauthorized(error => { /* ... */ })
  .error(418, error => { /* ... */ })
  .res(response => /* ... */)
  .catch(error => { /* uncaught errors */ })

GitHub 地址→github.com/elbywan/wretch

1.4 一站式的 LLM 開發和部署工具:LitGPT

主語言:PythonStar:8.6k周增長:300

該專案是一款用 Python 編寫的提供了 20 多種 LLMs 的預訓練、微調和部署的工具。它可以透過 Pyhton 庫或者命令列的方式使用,對模型進行微調、預訓練、評估和部署服務等操作,支援自動從 HF 下載模型、自定義資料集、效能最佳化、降低記憶體要求(precision)等功能,以及 LoRA、QLoRA、Adapter 等多種微調方法。

from litgpt import LLM

llm = LLM.load("microsoft/phi-2")
text = llm.generate("Fix the spelling: Every fall, the familly goes to the mountains.")
print(text)
# Corrected Sentence: Every fall, the family goes to the mountains.       

GitHub 地址→github.com/Lightning-AI/litgpt

1.5 微軟開源的 RAG 框架:GraphRAG

主語言:PythonStar:10k周增長:9k

該專案是由微軟開源的基於知識圖譜的檢索增強型生成(RAG)系統,它利用大型語言模型生成知識圖譜,將非結構化的文字轉換為具有標籤的知識圖譜資料,從而增強 LLMs 的輸出結果。相較於基準 RAG(向量相似性),基於知識圖譜的 GraphRAG 在回答更抽象(關係)和總結性問題時表現更好。

GitHub 地址→github.com/microsoft/graphrag

2. HelloGitHub 熱評

在這個章節,將會分享下本週 HelloGitHub 網站上的熱門開源專案,歡迎與我們分享你上手這些開源專案後的使用體驗。

2.1 瀏覽器控制多臺 Android 裝置的平臺:stf

主語言:JavaScript

這是一個用 Node.js 開發的安卓智慧裝置群測工具,它提供了一個可遠端除錯多臺 Android 裝置的 Web 平臺,支援 Android 手機和手錶等裝置。

專案詳情→hellogithub.com/repository/af0868c1e3ea4d608e92849b405a8ddb

2.2 最佳化 React 元件效能的工具:million

主語言:TypeScript

該專案是專為 React 應用設計的最佳化編譯器,它透過最佳化虛擬 DOM 和直接更新 DOM 節點,來減少頁面更新的耗時,從而提升 React 元件效能,最高可達 70%,支援 VSCode 外掛和命令列的使用方式。

專案詳情→hellogithub.com/repository/406d03f678a64294b6c7e763a783b972

3. 結尾

我最近正全身心投入 HelloGitHub 官網的國際化工作中,這使得其他一些事情(HelloStar 等)不得不暫停。我之所以如此專注於國際化,是因為我深信這將提升 HelloGitHub 的全球影響力:它不僅能夠讓國內的開源專案透過一個國際化的平臺被世界看到,也能讓國外的開源專案作者理解並知道 HelloGitHub 在做的事情。

雖然這項工作充滿挑戰、進展緩慢,但我希望能夠在「第100期」特別版釋出之前完成它,讓這一里程碑時刻更加有意義。

在此,我要向所有參與這個專案的朋友們(@雪峰、@塔咖...)表達感謝。正是因為有了你們的無私奉獻和堅定支援,讓這一切才得以可能。一個人或許可以走得很快,但一群人定會走得更遠。HelloGitHub 渴望成為每位開源愛好者旅程中的夥伴,讓我們一起穿越難關,共同迎接烏雲背後的陽光!

以上就是本期「GitHub 熱點速覽」的全部內容,希望你能夠在這裡找到自己感興趣的開源專案,如果你有其他好玩、有趣的 GitHub 開源專案想要分享,歡迎來 HelloGitHub 與我們交流和討論。

往期回顧

  • GitHub 創始人資助的開源瀏覽器
  • 超快的 Python 包管理工具

相關文章