PROD欧洲主权BaaS平台打开仪表板 →

工程 · 8 最小读取值

主权自托管:Aurabase 与 Rust BaaS

Affane Daylami · Fondateur · 2026年6月16日

返回博客

如果您正在寻找一个用 Rust 编写的可以自行托管的后端,那么选择不再仅限于一个名称。 sh0.dev 分发大约 25 MB 的单个 Rust 二进制文件。 TrailBase 在同一个包中结合了 Rust 核心、嵌入式 SQLite 基础和 SolidJS 管理界面。 Aurabase 仍然是一个完整的平台,也通过 Kubernetes(本地 k3d)或 Helm 图表进行自托管:每个项目专用的 Postgres 16、身份验证、实时、存储、边缘功能和本机 AI。真正的问题不是“哪一个是用 Rust 编写的”,而是哪个功能范围对应于您的项目。

该英文文本是根据法文原文自动生成的,尚未经过审查。
该页面已自动翻译。英文版具有权威性。

此比较重点关注自托管 Rust 原生后端:sh0.dev、TrailBase 和 Aurabase。对于更通用的自托管后端,不是用 Rust 编写的,我们的比较 Aurabase 与 PocketBase 和 Aurabase 与 Appwrite 探索其他选项。为了完整分析“欧盟主权”在法律上的含义、托管和发布者的国籍,我们的文章 自托管与欧盟主权 BaaS 更进一步;这篇文章仅限于将 Aurabase 归入 Rust 同行之列。

要点

  • 目前,自托管 Rust 原生后端有三个真正的选择:sh0.dev(单个二进制文件,~25 MB)、TrailBase(Rust + 嵌入式 SQLite + SolidJS 接口)、Aurabase(全平台,专用 Postgres 16)。
  • Aurabase 假设了单一二进制的相反妥协:多个精心编排的服务(本地 k3d 或生产中的 Kubernetes/Helm)以换取多租户 RLS、实时 CDC 和本机 AI(NL2SQL、RAG)。
  • 自托管和欧盟主权是两个不同的轴:只要物理服务器和出版公司本身不在欧盟,自行托管并不能保证任何事情。
  • 有关 sh0.dev 和 TrailBase 的信息基于撰写本文时的公共页面,未经彻底审核:在做出任何决定之前检查其最新文档。
#
为什么生锈

为什么“Rust-native”对于自托管很重要

自托管后端将基础设施从云提供商的外围移除,但不承担可靠运行基础设施的责任。这就是语言的选择不再是一个细节的地方:Rust 的内存安全性和垃圾收集器的缺乏减少了整个类别的生产故障,这些故障对运行自己的服务器的小团队造成的打击最为严重。

这不是一个纯粹的性能论点。对于没有专用 SRE 的团队来说,没有段错误且没有不可预测的内存收集暂停的服务更容易监控。 Aurabase 核心的实际架构(18 个板条箱的 Cargo 工作区编译在一起)详细记录在我们的 Rust 架构文件中。

要知道的细微差别

仅“开源”不足以保证可移植性或不受锁定:实际架构、单租户或多租户、专有或标准存储引擎更重要。 sh0.dev、TrailBase 和 Aurabase 都提供对源代码的访问,但范围和数据模型截然不同。

#
选项1

sh0.dev:独特的 Rust 二进制文件,专为极简主义而设计

根据撰写本文时的公共页面,sh0.dev 将自身呈现为以大约 25 MB 的单个 Rust 二进制文件形式分发的后端。核心论点是部署的简单性:将文件复制到服务器,无需单独安装外部依赖项。

我们尚未在本文中详细审核 sh0.dev 的确切功能范围或许可模式:有关此主题的公开信息仍然有限,并且此类项目发展很快。如果此标准影响您的决定,请在做出决定之前查看其最新的官方文档。

#
选项2

TrailBase:Rust 核心、嵌入式 SQLite、SolidJS 界面

根据其公开页面,TrailBase 结合了用 Rust 编写的后端核心、嵌入式 SQLite 数据库和用 SolidJS 构建的管理界面,所有这些都作为自托管项目提供。该架构让人想起 PocketBase(Go、SQLite、集成接口),其运行时是用 Rust 而不是 Go 编写的。

与 sh0.dev 一样,本文并未声称已彻底检查 TrailBase 代码或路线图。我们可以自信地说的是总体架构定位:嵌入自己存储引擎的二进制文件,而不是由外部 Postgres 支持的后端。

#
选项3

Aurabase:专用的 Postgres 16,完整的平台,也是自托管的

Aurabase 假设了与单二进制不同的权衡。该存储库提供了通过 ./start.sh在一个命令中启动的本地 Kubernetes 集群 (k3d),以及完整的 Helm 图表 (deploy/helm/aurabase/),其中包含 Hetzner、本地 Kubernetes 工作台 (k3d) 和 Scaleway 的单独价值配置文件。根 Cargo 工作区是根据 MIT 许可证发布的。

这种选择涉及要编排的多个服务,网关、身份验证、数据库、实时、存储、功能、AI,而不是单个流程。作为交换,每个项目都会收到一个专用的 PostgreSQL 16(不是共享的 SQLite 文件),租户映像中嵌入了 pgvector 0.8.6 和 pg_graphql,以及引擎级别而不是应用程序级别的行级安全隔离。

Rust 核心唯一值得注意的细微差别:边缘函数的默认模式依赖于专用的 TypeScript 服务(V8 Isolates),这是在上面引用的架构文件中详细记录的工程妥协,而不是我们希望保持安静的遗漏。

#
概述

三种架构并列总结

标记为“要检查”的 sh0.dev 和 TrailBase 列反映了我们对这两个工具的非详尽搜索,而不是确认它们缺乏功能。

标准光环基地sh0.dev步道基地
主要语言Rust(完整工作区,18 个板条箱)Rust(单个二进制)Rust(核心)+SolidJS(界面)
部署足迹本地 k3d 或生产中的 Helm/Kubernetes,多种服务单个二进制文件,~25 MB单个二进制嵌入式 SQLite
数据库每个项目专用 PostgreSQL 16 + pgvector + pg_graphql待验证(官方文档)嵌入式SQLite
管理界面独立的 Next.js 工作室检查SolidJS 接口集成到二进制中
原生 AI (NL2SQL / RAG)是的,已签入代码 (aura-ai)检查检查
官方对此对比的声音此比较,由 Aurabase 发布无,未经请求无,未经请求
#
主权

欧盟主权:不取决于二元选择

自托管用 Rust 编写的后端,无论它是什么,其本身并不能保证有关欧盟主权的任何内容。必须满足两个不同的条件:物理服务器必须在欧盟运行,并且您必须保持对其的实际操作控制。 sh0.dev、TrailBase 和 Aurabase 都无法为您保证第二个条件:您选择在何处部署二进制文件或容器。

软件发行商的管辖权也很重要,但在不同的轴上:由供应商管理的版本而不是您自己的自托管版本。这是我们关于 选择 BaaS的文章中详细介绍的云行为角度。对于 Aurabase 管理的基础设施本身:它在纽伦堡和法尔肯斯坦(德国)以及赫尔辛基(芬兰)的 Hetzner 数据中心上运行并在生产中得到验证。这是当今实际存在的欧盟主权,与 Aurabase SAS 的巴黎总部不同。

信息

选择住宿(无论是否主权)之前要检查的合规标准详细信息:我们的页面 合规性。

#
在实践中

什么时候选择什么

如果部署占用空间是首要标准,那么最小的 VPS、边缘设备、每兆字节都很重要的项目、sh0.dev 或 TrailBase 都值得一试。对于这个特定的用例来说,这些都是合理的选择,即使我们自己没有在生产中测试它们的行为。

如果您的项目需要具有高级行级安全性的真正多租户、完整的 Postgres 而不是 SQLite,或无需第三方组装的本机 AI(NL2SQL、RAG),Aurabase 可以满足您的需求。如果您从现有的 Supabase 项目开始,这也是最直接的路径:Aurabase 被定位为用 Rust 编写的 Supabase 的替代品,其 SDK 和 RLS 策略旨在几乎直接兼容,记录在我们的 迁移指南中。

#
常见问题

常见问题解答

sh0.dev 和 TrailBase 是开源的吗?+
根据撰写本文时可用的公开信息,TrailBase 和 sh0.dev 都将自己视为具有可访问源代码的 Rust 项目。本文尚未详细审核其存储库或许可证:在做出任何架构决策之前,请检查其各自存储库上的确切许可证和维护状态。
我们可以将 sh0.dev 或 TrailBase 项目迁移到 Aurabase 吗?+
Aurabase 目前没有发布 sh0.dev 或 TrailBase 的专用迁移指南。 TrailBase将其数据存储在嵌入式SQLite中,就像PocketBase一样:每个表在导入到PostgreSQL之前都必须经过审查,没有自动转换脚本。对于 sh0.dev,数据模型取决于该工具公开的引擎,可以在其当前文档中进行检查。
仅自托管就能保证欧盟主权吗?+
不。如果物理服务器实际上在欧盟运行并且您保持对其的操作控制,那么您自己托管 Rust 二进制文件只能保证欧盟主权。编写软件的公司的管辖权与服务器的位置是不同的轴,两者都会计入完整的 GDPR/CLOUD 法案合规性分析。

准备好部署了吗?

五分钟内完成您的后端。

无需信用卡 · 500 MB 免费 · 50,000 MAU