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

image

原文: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,提供了 pipconda 两种安装方式:

  • 使用 pippip install --upgrade diffusers[torch]
  • 使用 condaconda 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 结构,帮助科研人员进行分子结构的分析和研究。
  • 娱乐行业:用于游戏、动漫等领域的内容创作,如生成游戏角色、场景等。
posted @ 2025-10-22 07:24  piggy侠  阅读(269)  评论(0)    收藏  举报