Hacker News 中文摘要

RSS订阅

OpenWorkers:基于Rust的自托管Cloudflare Workers -- OpenWorkers: Self-Hosted Cloudflare Workers in Rust

文章摘要

OpenWorkers是一个用Rust实现的开源自托管Cloudflare Workers运行时,支持在V8隔离环境中执行JavaScript代码。它提供了KV存储、PostgreSQL、S3兼容存储等绑定功能,以及fetch、crypto等Web API,采用nginx代理+多模块的架构设计,让开发者能在自有基础设施上实现边缘计算能力。

文章总结

开源Rust实现的自托管Cloudflare Workers平台

OpenWorkers是一个基于Rust开发的开源运行时环境,能够在V8隔离环境中执行JavaScript代码,将边缘计算能力引入用户自有基础设施。

核心功能特性

数据绑定支持

  • 键值存储(增删改查)
  • PostgreSQL数据库连接
  • 兼容S3/R2的对象存储
  • 服务绑定功能
  • 环境变量与密钥管理

Web API兼容

  • 完整fetch API支持
  • 流式数据处理接口
  • 加密功能模块
  • 基础文本处理工具
  • 异步控制接口

系统架构设计

采用微服务架构,主要组件包括: 1. 前端代理(nginx) 2. 控制面板(dashboard) 3. API网关层 4. 日志服务 5. 分布式执行器(runner) 6. 消息中间件(nats) 7. PostgreSQL数据库 8. 任务调度器

关键技术指标: - V8隔离环境:每个Worker限制CPU(100ms)和内存(128MB) - 定时任务:支持标准cron表达式 - 完全兼容Cloudflare Workers语法

部署方案

仅需准备: 1. PostgreSQL数据库 2. Docker Compose文件 即可快速部署

开发背景

项目历经7年演进: 1. 初期采用vm2沙箱方案 2. 受Cloudflare Workers启发转型 3. 曾基于Deno-core运行两年 4. 最终采用rusty_v8底层重构

核心价值主张: - 数据自主:所有数据保留在自有基础设施 - 成本可控:无按请求计费模式 - 避免锁定:保持与Cloudflare Workers兼容

未来规划

即将推出执行过程录制与回放功能,支持确定性调试。

评论总结

以下是评论内容的总结:

  1. 项目介绍与功能支持

    • 作者max_lt介绍了OpenWorkers项目,支持在自有基础设施上运行不受信任的JS代码,功能包括fetch、KV、Postgres绑定等,部署简单。
    • 引用:"OpenWorkers lets you run untrusted JS in V8 isolates on your own infrastructure."
    • 引用:"Self-hosting is a single docker-compose file + Postgres."
  2. 技术实现疑问

    • vmg12询问是否使用了Cloudflare Worker运行时,还是仅运行在V8隔离环境。
    • 引用:"Does this actually use the cloudflare worker runtime or is this just a way to run code in v8 isolates?"
  3. 反对供应商锁定

    • kachapopopow支持减少对供应商锁定的依赖,希望云服务定价更合理。
    • 引用:"I see anything that reduces the reliance on vendor lock-in I upvote."
    • 引用:"Cloud services are actually really nice...if you were to ignore the eye watering cost."
  4. 与其他方案的比较

    • strangescript认为Cloudflare的开发体验不如自托管方案(如Node服务器+Docker)易用。
    • 引用:"A plain old node server in a docker container was much easier to manage."
    • kristianpaul提到可考虑与openfaas并列的选项。
    • 引用:"Interesting option to consider next to openfaas."
  5. 功能扩展建议

    • st3fan建议集成GitHub实现代码推送自动部署。
    • 引用:"Do you plan to hook this up to GitHub...will result in a redeploy?"
    • mohsen1希望支持类似Cloudflare Workflows的功能。
    • 引用:"Would be nice to build Workflows on top of this too."
  6. 正面评价

    • mohsen1和st3fan对项目表示赞赏。
    • 引用:"This is super nice! Thank you for working on this!"
    • 引用:"This is very nice!"