takumi

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

开源 🏷️定价信息待确认 ✅ 目前可打开 图像生成 🍴 复刻 91 🐛 待处理 22 👀 关注 2
访问官网 ↗ GitHub ↗
GitHub 星标 ★ 3186
维护状态 活跃
是否开源 开源
定价模式 🏷️定价信息待确认

项目预览

takumi 项目界面预览图
图片来源:项目官网

项目数据

分类图像生成
开发团队kane50613
定价模式🏷️定价信息待确认
价格说明定价信息待确认
访问状态✅ 目前可打开
是否开源是
开源协议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 星标★ 3186
上线时间2025-06-01 00:00:00
代码更新2026-11-10
仓库体积339.9 MB
本站数据更新2026-11-10
维护状态活跃
收录时间2026-08-09
浏览次数5

项目介绍

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

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 3186

使用教程

难度:入门 约 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(
      <div tw="w-full h-full flex items-center justify-center bg-linear-to-b from-blue-100 to-red-50">
        <h1 tw="text-6xl font-bold">Hello from Takumi</h1>
      </div>,
      { 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(
      <main>
        <h1>Invoice</h1>
        <p>Total: $1,250.00</p>
      </main>,
      {
        size: "a4",
        footer: (
          <div tw="flex w-full justify-center text-[10px] text-gray-500">
            <PageNumber /> / <TotalPages />
          </div>
        ),
      },
    );
  6. 6运行 PDF 脚本

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

    bun document.tsx

关键配置

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

同类项目推荐

Generating-Devanagari-Using-DRAW 开源

用DRAW模型生成天城文手写字符,体验循环注意力生成。

PyTorch implementation of DRAW: A Recurrent Neural Network For Image Generation trai···

★ 87 2026-08-09
stable-diffusion-multi-user 开源

多用户共享 SD 绘画服务,多 GPU 自动负载均衡

stable diffusion multi-user django server code with multi-GPU load balancing

★ 314 2026-08-09
Qinti 开源

双击即用的专业级 AI 图像生成前端,无需配置环境

An AI image generation frontend focused on ease of use, versatility and capability f···

★ 51 2026-08-09
comfyui-lama-remover 开源

在 ComfyUI 里一键擦除图像中不想要的物体,自动补全背景。

a simple lama remover

★ 162 2026-08-09
image-prompt-library 开源

本地管理 AI 绘画提示词,分类收藏一键复用

Local-first image prompt library for generating images, saving prompts, tags, and co···

★ 151 2026-08-09
parti-pytorch 开源

用纯Transformer把文字变成高清图像,复现Google Parti模型

Implementation of Parti, Google's pure attention-based text-to-image neural network,···

★ 536 2026-08-09
layout2im 开源

给物体框和类别,直接生成符合布局的场景图

Official PyTorch Implementation of Image Generation from Layout - CVPR 2019

★ 194 2026-09-16