【GitHub每日速遞 251022】81.2k star, Bun:替代 Node.js 的全棧 JavaScript 神器,快速上手攻略來了!

原文:https://mp.weixin.qq.com/s/RUljlo23iM1XCVizwg4rog
Bun:替代 Node.js 的全棧 JavaScript 神器,快速上手攻略來了!
bun是一個集JavaScript運行時、打包工具、測試運行器和包管理器于一體的高性能開發工具。簡單講,它用一個工具解決了JavaScript開發中的多種需求,且速度極快。適用人群:前端開發者、Node.js開發者
項目地址:https://github.com/oven-sh/bun
主要語言:Zig
stars: 81.2k
核心介紹
Bun 是一個面向 JavaScript 和 TypeScript 應用的一體化工具包,以單個可執行文件 bun 的形式發布。其核心是 Bun 運行時,這是一個快速的 JavaScript 運行時,旨在作為 Node.js 的直接替代品。它用 Zig 編寫,底層由 JavaScriptCore 驅動,能顯著減少啟動時間和內存使用。
主要功能
- 運行代碼:支持直接運行 TypeScript 和 JSX 文件,如
bun run index.tsx。 - 測試運行:內置測試運行器,可使用
bun test運行測試。 - 腳本執行:能運行
package.json中的腳本,例如bun run start。 - 包管理:作為兼容 Node.js 的包管理器,可執行
bun install <pkg>安裝包,bunx執行包等操作。
安裝與升級
- 支持系統:支持 Linux(x64 & arm64)、macOS(x64 & Apple Silicon)和 Windows(x64)。
- 安裝方式:提供多種安裝方式,如使用安裝腳本、npm、Homebrew、Docker 等。
- 升級命令:使用
bun upgrade升級到最新版本,bun upgrade --canary升級到最新的 canary 版本。
優勢
- 高性能:啟動速度快,內存使用少,其內置工具比現有同類工具速度更快。
- 兼容性:可在現有的 Node.js 項目中使用,無需大量修改。
- 一體化:集運行時、測試運行器、腳本運行器和包管理器等多種功能于一身,減少了對眾多
node_modules的依賴。
應用場景
- Web 開發:可用于構建各類 Web 應用,搭配 React、Next.js、Nuxt 等框架。
- 腳本編寫:執行自動化腳本、工具腳本等。
- 測試:運行單元測試、集成測試等。
詳細文檔與指南
倉庫提供了豐富的文檔和指南,涵蓋了從基礎介紹、安裝、快速入門到各種功能的詳細使用說明,例如:
- 快速鏈接:包含介紹、模板、CLI、運行時、包管理、打包器、測試運行器、包運行器和 API 等方面的詳細文檔鏈接。
- 指南:提供了二進制操作、生態系統集成、HTML 處理、HTTP 操作、安裝、進程管理、文件讀寫、運行時配置、流處理、測試、實用工具、WebSocket 和文件寫入等多個領域的使用指南。
??爆火!Diffusers庫帶你玩轉圖像、音頻和3D分子生成
項目地址:https://github.com/huggingface/diffusers
主要語言:Python
stars: 31.2k
核心功能
?? Diffusers 是用于生成圖像、音頻甚至分子 3D 結構的最先進預訓練擴散模型庫,是一個模塊化工具包,支持簡單推理和自定義擴散模型訓練。它有三個核心組件:
- 擴散管道:先進的擴散管道,只需幾行代碼即可運行推理。
- 噪聲調度器:可互換的噪聲調度器,能夠控制不同的擴散速度和輸出質量。
- 預訓練模型:預訓練的模型可作為構建塊,與調度器結合創建自己的端到端擴散系統。
優勢
- 注重可用性:設計理念強調可用性高于性能、簡單性高于便捷性、可定制性高于抽象性。
- 安裝便捷:支持通過 PyPI 或 Conda 在虛擬環境中安裝,同時對 Apple Silicon(M1/M2)也有相應支持。
- 使用簡單:提供快速入門示例,無論是使用預訓練模型生成圖像,還是構建自己的擴散系統都很容易上手。
- 文檔豐富:提供詳細的文檔,涵蓋教程、加載配置、推理管道、優化和訓練等方面,方便用戶學習和使用。
- 社區活躍:歡迎開源社區貢獻,提供貢獻指南和不同類型的貢獻機會,還有公共 Discord 頻道供交流。
安裝方式
推薦在虛擬環境中安裝,支持 PyTorch,提供了 pip 和 conda 兩種安裝方式:
- 使用
pip:pip install --upgrade diffusers[torch] - 使用
conda:conda install -c conda-forge diffusers
對于 Apple Silicon(M1/M2),可參考 How to use Stable Diffusion in Apple Silicon 指南。
快速開始
- 使用預訓練模型生成圖像:可以使用
from_pretrained方法加載預訓練擴散模型,輕松實現文本到圖像的生成。
from diffusers import DiffusionPipeline
import torch
pipeline = DiffusionPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5", torch_dtype=torch.float16)
pipeline.to("cuda")
pipeline("An image of a squirrel in Picasso style").images[0]
- 構建自己的擴散系統:也可以深入研究模型和調度器工具箱,構建自己的擴散系統。
from diffusers import DDPMScheduler, UNet2DModel
from PIL import Image
import torch
scheduler = DDPMScheduler.from_pretrained("google/ddpm-cat-256")
model = UNet2DModel.from_pretrained("google/ddpm-cat-256").to("cuda")
scheduler.set_timesteps(50)
sample_size = model.config.sample_size
noise = torch.randn((1, 3, sample_size, sample_size), device="cuda")
input = noise
for t in scheduler.timesteps:
with torch.no_grad():
noisy_residual = model(input, t).sample
prev_noisy_sample = scheduler.step(noisy_residual, t, input).prev_sample
input = prev_noisy_sample
image = (input / 2 + 0.5).clamp(0, 1)
image = image.cpu().permute(0, 2, 3, 1).numpy()[0]
image = Image.fromarray((image * 255).round().astype("uint8"))
image
文檔導航
- 教程:學習如何使用庫的最重要功能,如使用模型和調度器構建自己的擴散系統,以及訓練自己的擴散模型。
- 加載:指導如何加載和配置庫的所有組件(管道、模型和調度器),以及如何使用不同的調度器。
- 推理管道:指導如何使用管道進行不同的推理任務、批量生成、控制生成輸出和隨機性,以及如何為庫貢獻管道。
- 優化:指導如何優化擴散模型,使其運行更快并消耗更少的內存。
- 訓練:指導如何使用不同的訓練技術為不同的任務訓練擴散模型。
流行任務和管道
涵蓋了多種任務,如無條件圖像生成、文本到圖像、文本引導的圖像到圖像、文本引導的圖像修復、圖像變異和超分辨率等,并提供了相應的管道和 Hugging Face Hub 上的模型鏈接。
相關庫
有眾多流行的庫使用了 ?? Diffusers,如 microsoft/TaskMatrix、invoke-ai/InvokeAI 等,還有超過 14000 個其他優秀的 GitHub 倉庫也在使用。
應用場景
- 創意設計:可以根據文本描述生成各種風格的圖像,為設計師提供創意靈感,如生成廣告海報、藝術插畫等。
- 數據增強:在機器學習訓練中,通過生成不同的圖像、音頻等數據,增加訓練數據的多樣性,提高模型的泛化能力。
- 分子結構研究:生成分子的 3D 結構,幫助科研人員進行分子結構的分析和研究。
- 娛樂行業:用于游戲、動漫等領域的內容創作,如生成游戲角色、場景等。

浙公網安備 33010602011771號