PRODSovereign European BaaS platformOpen Dashboard →

Engineering · 8 min read

Sovereign self-hosting: Aurabase vs Rust BaaS

Affane Daylami · Fondateur · June 16, 2026

Back to blog

If you're looking for a backend written in Rust that you can self-host yourself, the choice is no longer limited to just one name. sh0.dev distributes a single Rust binary of approximately 25 MB. TrailBase combines a Rust core, an embedded SQLite base and a SolidJS administration interface in the same package. Aurabase remains a complete platform, also self-hosted via Kubernetes (k3d locally) or a Helm chart: Postgres 16 dedicated per project, authentication, real time, storage, edge functions and native AI. The real question is not "which one is written in Rust", but which functional scope corresponds to your project.

This English text was generated automatically from the French original and has not been reviewed yet.

This comparison focuses on self-hosting Rust-native backends: sh0.dev, TrailBase and Aurabase. For a more general self-hosted backend, not written in Rust, our comparisons Aurabase vs PocketBase and Aurabase vs Appwrite explore other options. For the complete analysis of what “EU sovereignty” means legally, hosting and nationality of the publisher, our article self-hosting versus an EU sovereign BaaS goes further; This post is limited to placing Aurabase among its Rust peers.

The essentials

  • Three real options today for a self-hosting Rust-native backend: sh0.dev (single binary, ~25 MB), TrailBase (Rust + embedded SQLite + SolidJS interface), Aurabase (full platform, dedicated Postgres 16).
  • Aurabase assumes the opposite compromise of a mono-binary: several orchestrated services (k3d locally or Kubernetes/Helm in production) in exchange for multi-tenant RLS, real-time CDC and native AI (NL2SQL, RAG).
  • Self-hosting and EU sovereignty are two distinct axes: hosting yourself does not guarantee anything as long as the physical server and the publishing company are not themselves in the EU.
  • Information about sh0.dev and TrailBase based on their public pages at the time of writing, not thoroughly audited: check their up-to-date documentation before making any decisions.
#
Why Rust

Why “Rust-native” matters for self-hosting

A self-hosted backend removes the infrastructure from a cloud provider's perimeter, but not the responsibility to run it reliably. This is where the choice of language ceases to be a detail: Rust's memory security and lack of garbage collector reduce an entire class of production failures, those that hit hardest a small team that operates its own server.

This is not a pure performance argument. A service that does not segfault and does not have unpredictable memory collection pauses is easier to monitor for a team without a dedicated SRE. The actual architecture of Aurabase's core, 18-crate Cargo workspace compiled together, is documented in detail in our Rust architecture file.

Nuance to know

“Open source” alone is not enough to guarantee portability or lack of lock-in: the actual architecture, single-tenant or multi-tenant, proprietary or standard storage engine, matters more. sh0.dev, TrailBase and Aurabase all provide access to the source code, but with very different scopes and data models.

#
Option 1

sh0.dev: a unique Rust binary, designed for minimalism

sh0.dev presents itself, according to its public pages at the time of writing, as a backend distributed in the form of a single Rust binary of around 25 MB. The central argument is the simplicity of deployment: a file to copy to a server, without external dependencies to install separately.

We have not audited the exact functional scope or licensing model of sh0.dev in detail for this article: publicly available information on this subject remains limited, and a project of this type evolves quickly. If this criterion weighs in your decision, check its up-to-date official documentation before deciding.

#
Option 2

TrailBase: Rust core, embedded SQLite, SolidJS interface

TrailBase combines, according to its public pages, a backend core written in Rust, an embedded SQLite database and an administration interface built with SolidJS, all delivered as a self-hosting project. The architecture is reminiscent of PocketBase (Go, SQLite, integrated interface), with a runtime written in Rust rather than Go.

As with sh0.dev, this article does not claim to have thoroughly checked the TrailBase code or roadmap. What we can say with confidence is the general architectural positioning: a binary that embeds its own storage engine rather than a backend backed by an external Postgres.

#
Option 3

Aurabase: dedicated Postgres 16, complete platform, also self-hosted

Aurabase assumes a different tradeoff than a mono-binary. The repository provides a local Kubernetes cluster (k3d) launched in one command via ./start.sh, as well as a full Helm chart (deploy/helm/aurabase/) with separate value profiles for Hetzner, a local Kubernetes bench (k3d), and Scaleway. The root Cargo workspace is released under the MIT license.

This choice involves several services to be orchestrated, gateway, auth, database, real time, storage, functions, AI, rather than a single process. In exchange, each project receives a dedicated PostgreSQL 16 (not a shared SQLite file), with pgvector 0.8.6 and pg_graphql embedded in the tenant image, and Row-Level Security isolation at the engine level rather than at the application level.

The only notable nuance to the Rust core: the default mode for edge functions relies on a dedicated TypeScript service (V8 Isolates), an engineering compromise documented in detail in the architecture file cited above, not an omission that we prefer to keep quiet.

#
Overview

Three architectures, summarized side by side

The sh0.dev and TrailBase columns marked “to check” reflect a non-exhaustive search on our part on these two tools, not a confirmed absence of functionality from them.

CriterionAurabasesh0.devTrailBase
Main languageRust (full workspace, 18 crates)Rust (single binary)Rust (core) + SolidJS (interface)
Deployment footprintk3d locally or Helm/Kubernetes in production, several servicesSingle binary, ~25 MBA single binary, embedded SQLite
DatabasePostgreSQL 16 dedicated per project + pgvector + pg_graphqlTo be verified (official doc)Embedded SQLite
Administration interfaceSeparate Next.js studioTo checkSolidJS interface integrated into binary
Native AI (NL2SQL / RAG)Yes, checked in code (aura-ai)To checkTo check
Official voice on this comparisonThis comparison, published by AurabaseNone, unsolicitedNone, unsolicited
#
Sovereignty

EU sovereignty: which does not depend on the choice of binary

Self-hosting a backend written in Rust, whatever it may be, does not in itself guarantee anything regarding EU sovereignty. Two distinct conditions must be met: the physical server must run in the European Union, and you must maintain actual operational control of it. Neither sh0.dev, nor TrailBase, nor Aurabase can guarantee the second condition for you: you choose where to deploy the binary or containers.

The jurisdiction of the software publisher also matters, but on a different axis: that of a version managed by the supplier rather than your own self-hosting. This is the CLOUD Act angle detailed in our article on choosing a BaaS. For the Aurabase managed infrastructure itself: it runs, verified in production, on Hetzner data centers in Nuremberg and Falkenstein (Germany) as well as in Helsinki (Finland). This is EU sovereignty as it actually exists today, distinct from the Paris headquarters of Aurabase SAS.

Info

Details of the compliance criteria to check before choosing accommodation, sovereign or not: our page compliance.

#
In practice

When to choose what

If deployment footprint is the number one criterion, a minimal VPS, an edge device, a project where every megabyte counts, sh0.dev or TrailBase are worth a try. These are defensible choices for this specific use case, even if we have not ourselves tested their behavior in production.

If your project needs true multi-tenancy with advanced Row-Level Security, full Postgres rather than SQLite, or native AI (NL2SQL, RAG) without third-party assembly, Aurabase covers that ground. It is also the most direct path if you start from an existing Supabase project: Aurabase is then positioned as an alternative to Supabase written in Rust, with an SDK and RLS policies which aim for almost direct compatibility, documented in our migration guide.

#
Frequently asked questions

FAQs

Are sh0.dev and TrailBase open source?+
Based on public information available at the time of writing, both TrailBase and sh0.dev present themselves as Rust projects with accessible source code. This article has not audited their repository or license in detail: check the exact license and maintenance status on their respective repository before making any architectural decisions.
Can we migrate a sh0.dev or TrailBase project to Aurabase?+
Aurabase does not currently publish a dedicated migration guide for sh0.dev or TrailBase. TrailBase stores its data in embedded SQLite, like PocketBase: each table must be reviewed before importing to PostgreSQL, there is no automatic conversion script. For sh0.dev, the data model depends on the engine exposed by the tool, to be checked in its current documentation.
Does self-hosting alone guarantee EU sovereignty?+
No. Hosting a Rust binary yourself only guarantees EU sovereignty if the physical server actually runs in the European Union and you maintain operational control of it. The jurisdiction of the company that wrote the software is a separate axis from the location of the server, both count for a complete GDPR/CLOUD Act compliance analysis.

READY TO DEPLOY?

Your backend in five minutes.

No credit card required · 500 MB free · 50,000 MAU