takumi

告别无头浏览器,用 JSX 快速生成 OG 图和 PDF

takumi 是一个用 Rust 编写的开源工具,用于从 JSX、HTML 和 CSS 渲染 Open Graph 图片和分页 PDF。它解决了传统方案依赖无头浏览器(如 Puppeteer)导致的高资源消耗和部署复杂性问题。核心能力包括:将 React/JSX 组件直接转换为图片或 PDF,支持在 Node.js、Cloudflare Workers、浏览器和 Rust 环境中运行,无需额外浏览器实例。它提供了简洁的 API,可自定义页面尺寸、样式和分页规则,适用于动态生成社交分享卡片、发票、报告等场景。由于基于 Rust 和 WebAssembly,性能优异且体积小巧,特别适合边缘计算环境。

开源 unknown 图像生成
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 3022
维护状态 活跃
是否开源 是
定价模式 unknown

项目数据

分类图像生成
开发团队kane50613
所属国家
定价模式unknown
价格说明定价信息待确认
访问状态
是否开源是
开源协议Apache-2.0
主要语言Rust
技术栈/模型cloudflare-workers,gif,html-to-image,html-to-pdf,image-generation,invoice,jsx,og-image,opengraph,opengraph-images,pdf,pdf-generation,pdf-generator,puppeteer-alternative,rust,satori,social-cards,svg,wasm
GitHub 星标★ 3022
30天Star增速
HF 下载量
上线时间2025-06-01 00:00:00
最近更新2026-09-23 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数4

使用教程

难度:入门 约 10 分钟 部署方式:库/依赖 6 步

环境要求

  • Bun 运行时(README 示例用 Bun 直接运行 JSX 文件)
  • Node.js 或 Bun 环境(会自动加载预编译原生绑定)
  • 如需在 Cloudflare Workers / 浏览器使用,则走 WebAssembly 构建
  • 如需在 Rust 项目中使用,需引入 takumi crate

安装与启动步骤

  1. 1安装图像渲染包

    在项目目录安装 takumi-js,支持输出 PNG、JPEG、WebP、SVG 和动画。

    bun i takumi-js
  2. 2安装 PDF 渲染包

    如需生成分页 PDF,额外安装 takumi-pdf,可与 takumi-js 并存。

    bun i takumi-pdf
  3. 3编写图片脚本

    新建 image.tsx,用 render 传入 JSX 和尺寸,README 示例输出 1200×630 PNG。

    import { render } from "takumi-js";
    import { writeFile } from "node:fs/promises";
    
    const image = await render(
      

    Hello from Takumi

    , { width: 1200, height: 630 }, ); await writeFile("./output.png", image);
  4. 4运行图片脚本

    用 Bun 直接执行 tsx 文件,在当前目录写出 output.png。

    bun image.tsx
  5. 5编写 PDF 脚本

    新建 document.tsx,可指定 a4 尺寸并通过 footer 加页码页脚。

    import { render } from "takumi-pdf";
    import { PageNumber, TotalPages } from "takumi-pdf/primitives";
    import { writeFile } from "node:fs/promises";
    
    const pdf = await render(
      

    Invoice

    Total: $1,250.00

    , { size: "a4", footer: (
    /
    ), }, );
  6. 6运行 PDF 脚本

    执行 Bun 命令生成 A4 分页 PDF 文档文件。

    bun document.tsx

关键配置

配置项必填说明示例
width否输出图片宽度(像素),配合 height 使用1200
height否输出图片高度(像素)630
size否PDF 页面尺寸,例如标准 A4a4
footer否PDF 页脚内容,可放 PageNumber / TotalPages /

如何确认成功

运行 bun image.tsx 后当前目录生成 output.png(1200×630);运行 bun document.tsx 生成对应 A4 PDF。

常见问题

Q:还需要安装 Puppeteer 等无头浏览器吗?

A:不需要。takumi 不依赖无头浏览器,直接从 JSX/HTML/CSS 渲染,资源占用和部署复杂度更低。

Q:可以只在 Node.js 里用吗?

A:可以。Node.js 与 Bun 会加载预编译原生绑定,覆盖 macOS、Linux(glibc/musl)和 Windows 的 x64 与 ARM64。

Q:能在 Cloudflare Workers 或浏览器里跑吗?

A:可以,这两种环境使用 WebAssembly 构建;Rust 应用则直接嵌入 takumi crate。

Q:图片包和 PDF 包必须都装吗?

A:不必须。只要图片/动画装 takumi-js,只要分页 PDF 装 takumi-pdf,按需选择即可。

注意事项

  • README 示例统一使用 Bun 运行 JSX,若换用其他运行时请自行确认是否支持直接执行 TSX。
  • 样式写在 JSX 的 tw 属性中(Tailwind 风格),尺寸通过 render 的第二个参数传入。
  • 安装方式按包区分:takumi-js 负责 PNG/JPEG/WebP/SVG 与动画,takumi-pdf 负责分页 PDF。

核心亮点

  • 无需无头浏览器,资源占用低,启动快,适合 Serverless 环境
  • 支持 JSX/HTML/CSS 直接渲染,前端开发者上手成本低
  • 跨平台运行(Node/Worker/浏览器/Rust),部署灵活

不足之处

  • 项目较新,生态和文档相比成熟方案仍有待完善
  • 复杂 CSS 布局支持可能不如完整浏览器渲染引擎

适用场景

  • 动态生成社交媒体分享卡片(OG 图)
  • 在边缘函数中生成 PDF 发票或报告
  • 为静态站点批量生成预览图

替代项目

Puppeteer、Playwright、Satori

项目介绍

takumi 是图像领域的开源项目,由 kane50613 开发,2025 年首次发布。

在全站 13,090 个收录项目中,它的 GitHub 星标数(3,022)位列前 30%,在图像分类的 839 个项目里位列前 8%。

近 42 天,它的 GitHub 星标从 2,772 增加到 3,022,净增 250。

项目目前处于活跃维护状态,最近一次代码更新于 2026-09-23。从国内网络环境看,可直接访问。

它主要面向的使用场景是:动态生成社交媒体分享卡片(OG图)。同类可对比的替代方案包括 Puppeteer、Playwright、Satori。

同类项目推荐

satori 开源

网页代码一键变高清图,放大不糊,不用截图

Enlightened library to convert HTML and CSS to SVG

★ 13967 2026-08-09
C2GAN 开源

用关键点精准控制图像生成,让AI画出你想要的结构

[ACM MM 2019 Oral] Cycle In Cycle Generative Adversarial Networks for Keypoint-Guide···

★ 70 2026-08-09
imagen-pytorch 开源

说句话生成高清图,放大也不糊

Implementation of Imagen, Google's Text-to-Image Neural Network, in Pytorch

★ 8427 2026-08-09