Questo confronto si concentra sui backend nativi Rust auto-hosting: sh0.dev, TrailBase e Aurabase. Per un backend self-hosted più generale, non scritto in Rust, i nostri confronti Aurabase vs PocketBase e Aurabase vs Appwrite esplorano altre opzioni. Per un’analisi completa di cosa significhi legalmente “sovranità dell’UE”, hosting e nazionalità dell’editore, il nostro articolo self-hosting rispetto a un BaaS sovrano dell’UE va oltre; Questo post si limita a collocare Aurabase tra i suoi pari Rust.
L'essenziale
- Tre reali opzioni oggi per un backend Rust nativo auto-hosting: sh0.dev (binario singolo, ~25 MB), TrailBase (Rust + interfaccia SQLite incorporata + SolidJS), Aurabase (piattaforma completa, Postgres 16 dedicato).
- Aurabase presuppone il compromesso opposto di un mono-binario: diversi servizi orchestrati (k3d localmente o Kubernetes/Helm in produzione) in cambio di RLS multi-tenant, CDC in tempo reale e AI nativa (NL2SQL, RAG).
- Self-hosting e sovranità dell’UE sono due assi distinti: ospitarsi non garantisce nulla finché il server fisico e la casa editrice non si trovano nell’UE.
- Informazioni su sh0.dev e TrailBase basate sulle loro pagine pubbliche al momento della scrittura, non accuratamente controllate: controlla la loro documentazione aggiornata prima di prendere qualsiasi decisione.
Perché "Rust-native" è importante per il self-hosting
Un backend self-hosted rimuove l'infrastruttura dal perimetro di un fornitore di servizi cloud, ma non la responsabilità di gestirla in modo affidabile. È qui che la scelta del linguaggio cessa di essere un dettaglio: la sicurezza della memoria di Rust e la mancanza di garbage collector riducono un'intera classe di fallimenti di produzione, quelli che colpiscono più duramente un piccolo team che gestisce il proprio server.
Questo non è un puro argomento di prestazione. Un servizio che non esegue segfault e non presenta pause imprevedibili di raccolta della memoria è più facile da monitorare per un team senza un SRE dedicato. L'architettura effettiva del core di Aurabase, l'area di lavoro Cargo da 18 casse compilata insieme, è documentata in dettaglio nel nostro file di architettura Rust.
L’“open source” da solo non è sufficiente a garantire la portabilità o la mancanza di lock-in: conta di più l’architettura stessa, single-tenant o multi-tenant, motore di storage proprietario o standard. sh0.dev, TrailBase e Aurabase forniscono tutti l'accesso al codice sorgente, ma con ambiti e modelli di dati molto diversi.
sh0.dev: un binario Rust unico, progettato per il minimalismo
sh0.dev si presenta, secondo le sue pagine pubbliche al momento in cui scriviamo, come un backend distribuito sotto forma di un unico binario Rust di circa 25 MB. L'argomento centrale è la semplicità di distribuzione: un file da copiare su un server, senza dipendenze esterne da installare separatamente.
Non abbiamo verificato in dettaglio l'esatto ambito funzionale o il modello di licenza di sh0.dev per questo articolo: le informazioni disponibili al pubblico su questo argomento rimangono limitate e un progetto di questo tipo si evolve rapidamente. Se questo criterio pesa nella tua decisione, controlla la sua documentazione ufficiale aggiornata prima di decidere.
TrailBase: nucleo Rust, SQLite incorporato, interfaccia SolidJS
TrailBase combina, secondo le sue pagine pubbliche, un core backend scritto in Rust, un database SQLite incorporato e un'interfaccia di amministrazione costruita con SolidJS, il tutto fornito come progetto self-hosting. L'architettura ricorda PocketBase (Go, SQLite, interfaccia integrata), con un runtime scritto in Rust anziché Go.
Come nel caso di sh0.dev, questo articolo non afferma di aver controllato accuratamente il codice o la roadmap di TrailBase. Ciò che possiamo dire con sicurezza è il posizionamento architettonico generale: un binario che incorpora il proprio motore di archiviazione piuttosto che un backend supportato da un Postgres esterno.
Aurabase: Postgres 16 dedicato, piattaforma completa, anche self-hosted
Aurabase presuppone un compromesso diverso rispetto a un sistema monobinario. Il repository fornisce un cluster Kubernetes locale (k3d) avviato in un comando tramite ./start.sh, nonché un grafico Helm completo (deploy/helm/aurabase/) con profili di valore separati per Hetzner, un bench Kubernetes locale (k3d) e Scaleway. L'area di lavoro root Cargo è rilasciata sotto la licenza MIT.
Questa scelta implica l'orchestrazione di diversi servizi, gateway, autenticazione, database, tempo reale, archiviazione, funzioni, intelligenza artificiale, piuttosto che un singolo processo. In cambio, ogni progetto riceve un PostgreSQL 16 dedicato (non un file SQLite condiviso), con pgvector 0.8.6 e pg_graphql incorporati nell'immagine del tenant e isolamento della sicurezza a livello di riga a livello del motore anziché a livello dell'applicazione.
L'unica sfumatura degna di nota del core di Rust: la modalità predefinita per le funzioni edge si basa su un servizio TypeScript dedicato (V8 Isolates), un compromesso ingegneristico documentato in dettaglio nel file di architettura sopra citato, non un'omissione che preferiamo tacere.
Tre architetture, riassunte una accanto all'altra
Le colonne sh0.dev e TrailBase contrassegnate come "da controllare" riflettono una ricerca non esaustiva da parte nostra su questi due strumenti, non un'assenza confermata di funzionalità da parte loro.
| Criterio | Aurabase | sh0.dev | TrailBase |
|---|---|---|---|
| Lingua principale | Ruggine (spazio di lavoro completo, 18 casse) | Rust (binario singolo) | Rust (core) + SolidJS (interfaccia) |
| Impronta di distribuzione | k3d in locale o Helm/Kubernetes in produzione, diversi servizi | Binario singolo, ~25 MB | Un singolo SQLite binario e incorporato |
| Banca dati | PostgreSQL 16 dedicato per progetto + pgvettore + pg_graphql | Da verificare (doc ufficiale) | SQLite incorporato |
| Interfaccia di amministrazione | Studio Next.js separato | Per controllare | Interfaccia SolidJS integrata nel binario |
| IA nativa (NL2SQL/RAG) | Sì, codice registrato (aura-ai) | Per controllare | Per controllare |
| Voce ufficiale su questo confronto | Questo confronto, pubblicato da Aurabase | Nessuno, non richiesto | Nessuno, non richiesto |
Sovranità dell’UE: che non dipende dalla scelta binaria
Ospitare autonomamente un backend scritto in Rust, qualunque esso sia, di per sé non garantisce nulla riguardo alla sovranità dell’UE. Devono essere soddisfatte due condizioni distinte: il server fisico deve funzionare nell'Unione Europea e l'utente deve mantenerne il controllo operativo effettivo. Né sh0.dev, né TrailBase, né Aurabase possono garantirti la seconda condizione: scegli tu dove distribuire il binario o i contenitori.
Anche la giurisdizione dell'editore del software è importante, ma su un asse diverso: quella di una versione gestita dal fornitore piuttosto che del proprio hosting autonomo. Questo è l'angolo di CLOUD Act dettagliato nel nostro articolo su scelta di un BaaS. Per la stessa infrastruttura gestita da Aurabase: funziona, verificata in produzione, sui data center Hetzner a Norimberga e Falkenstein (Germania) nonché a Helsinki (Finlandia). Questa è la sovranità dell’UE così come esiste realmente oggi, distinta dalla sede parigina di Aurabase SAS.
Dettagli sui criteri di conformità da verificare prima di scegliere l'alloggio, sovrano o meno: la nostra pagina compliance.
Quando scegliere cosa
Se l'impronta di distribuzione è il criterio numero uno, un VPS minimo, un dispositivo edge, un progetto in cui ogni megabyte conta, vale la pena provare sh0.dev o TrailBase. Si tratta di scelte difendibili per questo caso d'uso specifico, anche se non abbiamo testato noi stessi il loro comportamento in produzione.
Se il tuo progetto necessita di un vero multi-tenancy con sicurezza a livello di riga avanzata, Postgres completo anziché SQLite o AI nativa (NL2SQL, RAG) senza assemblaggio di terze parti, Aurabase copre questa situazione. È anche il percorso più diretto se si parte da un progetto Supabase esistente: Aurabase si posiziona quindi come alternativa a Supabase scritto in Rust, con policy SDK e RLS che mirano alla compatibilità quasi diretta, documentata nella nostra guida alla migrazione.