持久化事件投递
事件会在开始分发前写入 PostgreSQL,然后以至少一次的方式投递。操作人员可以手动重试失败的投递,并重放完整事件。
Sparrow 是面向需要向多个 HTTP 使用者发布事件的系统的开源、自托管 Webhook 投递服务器。应用可以注册事件类型和 Webhook,通过 REST API 推送事件发生信息,然后由 Sparrow 将其分发至匹配的订阅。
服务器会在开始投递前将事件持久化到 PostgreSQL,签名出站请求,记录投递结果,并通过退避机制执行分类重试。它将投递服务、工作进程流水线、内嵌仪表板和 API 文档整合在一个 Go 二进制文件中,并以 PostgreSQL 作为必需数据库。
事件会在开始分发前写入 PostgreSQL,然后以至少一次的方式投递。操作人员可以手动重试失败的投递,并重放完整事件。
Sparrow 会将可重试的失败(包括 5xx 响应、超时、429 响应和连接被拒绝)与永久性失败(例如许多 4xx 错误、DNS 错误和 TLS 错误)区分开来。
每次投递都使用 Standard Webhooks 约定进行签名。默认使用 HMAC-SHA256;单个 Webhook 可以改用 Ed25519。密钥在静态存储时使用 AES-256-GCM 进行信封加密。
投递流水线支持按订阅配置的 Go 模板转换、按 Webhook 配置的速率限制、Webhook 健康状态跟踪,以及投递尝试的审计记录。
OpenTelemetry 跟踪会贯穿队列任务,结构化日志和指标可以通过 OTLP 导出。内嵌仪表板显示投递日志和每个 Webhook 的健康状态。
服务器以单个 Go 二进制文件分发,内嵌 UI,并以 PostgreSQL 作为唯一的核心数据库依赖。River 工作进程使用同一数据库,迁移会在启动时自动运行。
产品或后端可以发布一次 `order.created` 或 `invoice.created` 等事件,然后由 Sparrow 将其分发给所有匹配的使用者 Webhook,无需实现单独的投递队列。
团队可以公开一个作用域受限且会过期的使用者门户链接,让单个使用者注册端点、浏览事件目录,并查看或重试自己的投递日志,而无需获得管理员 API 密钥。
操作人员可以利用投递记录、错误类别、Webhook 健康状态、跟踪信息以及重放或重试控制,诊断不可用或配置错误的接收方并恢复投递。
来源可以发布经过验证的 Stripe 或 GitHub Webhook,而 recipe 和 sink satellite 可以将事件连接到 Slack、Discord、PagerDuty、ntfy、ClickHouse、SMTP、S3/MinIO 或 OTLP 日志等目标。
开发者可以在集成开发过程中运行 CLI 监听器或 webhook.site,检查带签名的信封,在浏览器中预览 recipe 转换,并使用 REST API 或内嵌文档测试工作流。
文档记录的本地设置使用 Docker Compose。下载 Compose 文件,运行 `docker compose up -d`,然后在 `http://localhost:8080` 打开 Web UI。Compose 设置包含 PostgreSQL,并会在启动时自动运行迁移。对于生产环境,安装文档说明应配置真实的加密密钥和数据库,而不是使用本地评估默认值。
注册事件类型,使用一个或多个事件名称注册 Webhook,然后将事件 POST 到相应的使用者端点。Sparrow 会持久化事件、匹配订阅、创建投递任务,并在后台发送带签名的 HTTP POST 请求。可以通过 API 或内嵌 UI 查看投递状态。
Sparrow 至少投递一次事件。失败的投递会被分类为服务器错误、超时、速率限制、连接被拒绝、DNS 错误和 TLS 错误等类别。可重试的失败使用指数退避,而永久性失败会停止;操作人员也可以手动重试投递并重放事件。
默认情况下,投递使用每个 Webhook 的密钥和 Standard Webhooks 标头进行 HMAC-SHA256 身份验证。Webhook 也可以改用 Ed25519,由接收方使用公钥进行验证。Webhook 密钥在静态存储时使用 AES-256-GCM 进行信封加密。
Sparrow 默认会阻止私有 IP 地址和元数据 IP 地址,以防范 SSRF。进行本地评估时,可以通过 `SPARROW_ALLOW_PRIVATE_NETWORKS=true` 启用向私有网络投递;文档还指出,评估用 Compose 文件已启用此设置。
ByteAsk 是面向 C 和 C++ 的终端优先 AI 编码 agent,可直接编辑仓库,并在展示 diff 前用真实编译器、调试器、sanitizers 和测试验证修改。提供免费版与付费方案。
Epherem 是一款面向 AI 编程工具构建的 Web 应用静态安全扫描器,检查源文件和依赖项中的常见安全错误,并提供分类结果与修复建议,无需运行应用。
CreateOS Sandbox 是基于 Firecracker 微型虚拟机的隔离计算环境,用于运行代码和 agent 工作负载,支持私有网络、SDK、CLI 和 MCP 程序化控制。
GitBot 是基于本地浏览器的工作区,可借助 Claude Code、Codex 或 OpenCode 创建可复用的编程机器人,跨仓库文件夹运行代理,并保留持久线程与可配置权限。
hob 是面向编码 agent 的独立工作区,可将 agent 会话、终端、历史记录和后续工作围绕你已在用的工具与提供商有序管理,适合重视本地路由、历史和工作区结构控制的开发者。
Ably Chat 是用于构建自定义实时聊天应用的 chat API 平台,支持房间消息、输入指示、在线状态、表情回应与消息更新,并提供按使用量计费选项。