最新发布第11页
Anthropic 发布自然语言自编码器研究:用 Claude 的思维生成文本-枫选
Voice AI 隐形音频攻击:人耳听不到的声音如何劫持 AI 模型-枫选
Python 3.15新特性全解读:JIT回归、异步改进、懒导入-枫选
<p>JavaScript运行时Bun的实验性Rust重写版本近日达到了一个重要里程碑:在Linux x64 glibc平台上,测试兼容性达到了99.8%。这意味着Bun用Rust重写后,几乎完全兼容原有的JavaScript运行时行为。对于前端和全栈开发者来说,Bun正在从

Bun是什么

Bun是一个新兴的JavaScript运行时和工具链,由Jarred Sumner创建。它的目标是成为Node.js的更快替代品,集成了打包器(bundler)、包管理器(类似npm)和测试运行器。Bun最初用Zig语言编写,以其极快的启动速度和执行效率著称。

为什么要用Rust重写

虽然Zig语言性能出色,但其生态系统和社区规模相比Rust要小很多。Bun团队决定用Rust重写核心模块,主要出于以下考虑:

  • 更好的内存安全保证:Rust的所有权系统在编译期捕获内存错误,减少运行时崩溃。
  • 更活跃的生态系统:Rust有更丰富的库和工具支持。
  • 更容易吸引贡献者:Rust开发者群体远大于Zig,降低社区贡献门槛。
  • 长期可维护性:Rust的类型系统和模块化特性有利于大型项目的长期维护。

99.8%兼容性意味着什么

Jarred Sumner在社交媒体上宣布,Rust重写版本在Linux x64 glibc平台上的测试套件通过率达到了99.8%。这是一个非常高的数字,意味着:

  • 绝大多数现有的Node.js和Bun代码可以在Rust版本上无缝运行
  • npm包的兼容性基本没有问题
  • 文件系统、网络、子进程等核心API行为一致

不过需要注意,99.8%是在Linux x64 glibc上的数据,其他平台(macOS、Windows、musl libc)的兼容性可能还有差距。

对开发者的影响

当前阶段:观望为主

Bun的Rust重写目前仍处于实验阶段,不建议在生产环境中使用。但如果你对JavaScript运行时的性能有极致追求,可以开始关注和测试。

中期:评估迁移

当Rust版本的兼容性在所有主流平台上都达到99%+,并且性能指标稳定后,可以考虑将部分Node.js项目迁移到Bun。

长期:生态竞争

Bun、Deno和Node.js三个JavaScript运行时的竞争会推动整个生态的发展。无论你最终选择哪个,这种竞争都是好事。

快速体验Bun

如果想试试当前版本的Bun(Zig版本),安装很简单:

# Linux/macOS
curl -fsSL https://bun.sh/install | bash

# 验证安装
bun --version

运行一个简单的HTTP服务器:

// server.ts
export default {
  port: 3000,
  fetch(request: Request) {
    return new Response("Hello from Bun!");
  },
};
bun run server.ts

来源:

-枫选" class="lazyload fit-cover radius8">

JavaScript运行时Bun的实验性Rust重写版本近日达到了一个重要里程碑:在Linux x64 glibc平台上,测试兼容性达到了99.8%。这意味着Bun用Rust重写后,几乎完全兼容原有的JavaScript运行时行为。对于前端和全栈开发者来说,Bun正在从”有趣的实验”变成”可以考虑生产使用”的选项。

Bun是什么

Bun是一个新兴的JavaScript运行时和工具链,由Jarred Sumner创建。它的目标是成为Node.js的更快替代品,集成了打包器(bundler)、包管理器(类似npm)和测试运行器。Bun最初用Zig语言编写,以其极快的启动速度和执行效率著称。

为什么要用Rust重写

虽然Zig语言性能出色,但其生态系统和社区规模相比Rust要小很多。Bun团队决定用Rust重写核心模块,主要出于以下考虑:

  • 更好的内存安全保证:Rust的所有权系统在编译期捕获内存错误,减少运行时崩溃。
  • 更活跃的生态系统:Rust有更丰富的库和工具支持。
  • 更容易吸引贡献者:Rust开发者群体远大于Zig,降低社区贡献门槛。
  • 长期可维护性:Rust的类型系统和模块化特性有利于大型项目的长期维护。

99.8%兼容性意味着什么

Jarred Sumner在社交媒体上宣布,Rust重写版本在Linux x64 glibc平台上的测试套件通过率达到了99.8%。这是一个非常高的数字,意味着:

  • 绝大多数现有的Node.js和Bun代码可以在Rust版本上无缝运行
  • npm包的兼容性基本没有问题
  • 文件系统、网络、子进程等核心API行为一致

不过需要注意,99.8%是在Linux x64 glibc上的数据,其他平台(macOS、Windows、musl libc)的兼容性可能还有差距。

对开发者的影响

当前阶段:观望为主

Bun的Rust重写目前仍处于实验阶段,不建议在生产环境中使用。但如果你对JavaScript运行时的性能有极致追求,可以开始关注和测试。

中期:评估迁移

当Rust版本的兼容性在所有主流平台上都达到99%+,并且性能指标稳定后,可以考虑将部分Node.js项目迁移到Bun。

长期:生态竞争

Bun、Deno和Node.js三个JavaScript运行时的竞争会推动整个生态的发展。无论你最终选择哪个,这种竞争都是好事。

快速体验Bun

如果想试试当前版本的Bun(Zig版本),安装很简单:

# Linux/macOS
curl -fsSL https://bun.sh/install | bash

# 验证安装
bun --version

运行一个简单的HTTP服务器:

// server.ts
export default {
  port: 3000,
  fetch(request: Request) {
    return new Response("Hello from Bun!");
  },
};
bun run server.ts

来源:

迪滴的头像-枫选50天前
05111
<p>DocuSign是全球最知名的电子签名服务,但其定价对中小站长和创业团队来说并不友好。DocuSeal是一个开源免费的电子签名平台,GitHub上已获得16000+星标,支持自部署,可以作为DocuSign的替代方案。</p>

<h2>项目简介</h2>

<p>DocuSeal是一个功能完整的电子签名解决方案,支持创建、发送和签署PDF文档。项目使用Ruby on Rails开发,提供直观的Web界面,适合需要在自己的服务器上部署电子签名服务的团队。</p>

<p>项目地址:<a href=GitHub - docusealco/docuseal

核心功能

  • 文档模板:上传PDF文档,通过拖拽方式添加签名框、日期框、文本框等表单字段。
  • 多方签署:支持多个签署人按顺序或并行签署同一文档。
  • 邮件通知:自动发送签署邀请和完成通知邮件。
  • API接口:提供REST API,可以集成到现有应用中。
  • Webhook:签署完成后通过Webhook通知你的系统。
  • 审计日志:记录完整的签署过程,包括IP地址、时间戳等。
  • 多语言:支持中文在内的多种语言界面。

Docker部署教程

DocuSeal推荐使用Docker部署,步骤如下:

1. 创建docker-compose.yml

version: "3"
services:
  docuseal:
    image: docuseal/docuseal:latest
    ports:
      - "3000:3000"
    volumes:
      - docuseal-data:/data
    environment:
      - DATABASE_URL=sqlite3:/data/docuseal.sqlite3
      - RAILS_ENV=production
      - SECRET_KEY_BASE=your-random-secret-key-here

volumes:
  docuseal-data:

2. 启动服务

docker-compose up -d

3. 访问初始化

打开浏览器访问 http://your-server:3000,按照向导创建管理员账户。

4. 配置邮件(可选)

在环境变量中添加SMTP配置:

SMTP_ADDRESS=smtp.example.com
SMTP_PORT=587
SMTP_USERNAME=your-email@example.com
SMTP_PASSWORD=your-password
SMTP_DOMAIN=example.com

与DocuSign对比

特性DocuSeal(自部署)DocuSign(SaaS)
价格免费开源$10-60/月/用户
数据控制完全在自己服务器存储在DocuSign云端
自定义可完全自定义受限于平台功能
法律效力取决于当地法律全球认可
合规认证需要自行确保SOC 2、ISO 27001等
维护成本需要自行运维平台托管

适合谁使用

  • 中小团队:需要内部合同签署,但不想为每个用户付费。
  • 数据敏感行业:不想将签署文档存储在第三方云端。
  • 定制化需求:需要将签署功能集成到自己的业务系统中。
  • 学习和研究:想了解电子签名系统的技术实现。

注意事项

  • 电子签名的法律效力因国家和地区而异,重要合同建议咨询法律专业人士。
  • 自部署需要自行负责服务器安全、数据备份和SSL证书配置。
  • 对于需要全球法律认可的签署场景,DocuSign等成熟SaaS仍然是更稳妥的选择。

来源:

-枫选" class="lazyload fit-cover radius8">

DocuSign是全球最知名的电子签名服务,但其定价对中小站长和创业团队来说并不友好。DocuSeal是一个开源免费的电子签名平台,GitHub上已获得16000+星标,支持自部署,可以作为DocuSign的替代方案。

项目简介

DocuSeal是一个功能完整的电子签名解决方案,支持创建、发送和签署PDF文档。项目使用Ruby on Rails开发,提供直观的Web界面,适合需要在自己的服务器上部署电子签名服务的团队。

项目地址:GitHub – docusealco/docuseal

核心功能

  • 文档模板:上传PDF文档,通过拖拽方式添加签名框、日期框、文本框等表单字段。
  • 多方签署:支持多个签署人按顺序或并行签署同一文档。
  • 邮件通知:自动发送签署邀请和完成通知邮件。
  • API接口:提供REST API,可以集成到现有应用中。
  • Webhook:签署完成后通过Webhook通知你的系统。
  • 审计日志:记录完整的签署过程,包括IP地址、时间戳等。
  • 多语言:支持中文在内的多种语言界面。

Docker部署教程

DocuSeal推荐使用Docker部署,步骤如下:

1. 创建docker-compose.yml

version: "3"
services:
  docuseal:
    image: docuseal/docuseal:latest
    ports:
      - "3000:3000"
    volumes:
      - docuseal-data:/data
    environment:
      - DATABASE_URL=sqlite3:/data/docuseal.sqlite3
      - RAILS_ENV=production
      - SECRET_KEY_BASE=your-random-secret-key-here

volumes:
  docuseal-data:

2. 启动服务

docker-compose up -d

3. 访问初始化

打开浏览器访问 http://your-server:3000,按照向导创建管理员账户。

4. 配置邮件(可选)

在环境变量中添加SMTP配置:

SMTP_ADDRESS=smtp.example.com
SMTP_PORT=587
SMTP_USERNAME=your-email@example.com
SMTP_PASSWORD=your-password
SMTP_DOMAIN=example.com

与DocuSign对比

特性DocuSeal(自部署)DocuSign(SaaS)
价格免费开源$10-60/月/用户
数据控制完全在自己服务器存储在DocuSign云端
自定义可完全自定义受限于平台功能
法律效力取决于当地法律全球认可
合规认证需要自行确保SOC 2、ISO 27001等
维护成本需要自行运维平台托管

适合谁使用

  • 中小团队:需要内部合同签署,但不想为每个用户付费。
  • 数据敏感行业:不想将签署文档存储在第三方云端。
  • 定制化需求:需要将签署功能集成到自己的业务系统中。
  • 学习和研究:想了解电子签名系统的技术实现。

注意事项

  • 电子签名的法律效力因国家和地区而异,重要合同建议咨询法律专业人士。
  • 自部署需要自行负责服务器安全、数据备份和SSL证书配置。
  • 对于需要全球法律认可的签署场景,DocuSign等成熟SaaS仍然是更稳妥的选择。

来源:

迪滴的头像-枫选50天前
0505
Airbyte Agents:让AI Agent跨多个数据源搜索的开源工具-枫选
InsForge:开源的coding agents全栈后端平台,给AI Agent用的Heroku-枫选
用 CSS 实现抖动效果教程:纯前端做出复古像素风图片风格-枫选
AI 订阅费用正在成为企业的定时炸弹:从 Uber 烧光预算说起-枫选
OpenBrief:本地优先的视频下载+AI摘要工具,开源免费-枫选