PRODSouveräne europäische BaaS-PlattformÖffnen Sie das Dashboard →

Ingenieurwesen · 15 Min. Lesezeit

Der Rust-Kern von Aurabase: ein einheitliches Backend-as-a-Service

Affane Daylami · Fondateur · 16. August 2026

Zurück zum Blog

Aurabase ist ein in Rust geschriebenes Backend-as-a-Service – nicht nur für einige periphere Dienste, sondern für den gesamten Anwendungskern: Gateway, Authentifizierung, Datenbank, Echtzeit, Speicherung, Benachrichtigungen, KI, Bereitstellung. Der Cargo-Workspace im Stammverzeichnis des Repositorys listet 18 Kisten auf, die von einem einzigen Cargo-Build-Workspace zusammengestellt wurden, ohne dass sich hinter der Produktlogik eine Sprache von Drittanbietern verbirgt.

Dieser englische Text wurde automatisch aus dem französischen Original generiert und wurde noch nicht überprüft.
Diese Seite wurde automatisch übersetzt. Maßgeblich ist die englische Version.

Diese Datei dokumentiert diese Architektur, wie sie tatsächlich im Code vorhanden ist, Datei für Datei verifiziert mit Stand vom 23. August 2026 – Diagramme, Abbildungen und Auszüge inklusive. Dies ist die Hauptseite des „Rust Engineering“-Clusters: Sie bietet einen Überblick und Links zu den ausführlichen technischen Analysen (Axum, Cargo Workspace, Gateway, PostgREST, pg_graphql und der Rest der Datei), die veröffentlicht wurden oder gerade veröffentlicht werden. Den vollständigen Produktvergleich mit einem konkurrierenden BaaS finden Sie in unserem -Vergleich Aurabase vs. Supabase.

Das Wesentliche

  • Single Workspace Cargo: 18 Kisten (11 Geschäftsdienste, die auraCLI, 5 gemeinsam genutzte Bibliotheken, das Rust SDK), zusammengestellt von einem einzigen cargo build --workspace.
  • Der Geschäftscode wiegt ungefähr 274.000 Rust-Zeilen (gemessen über find + wc -l, 23. August 2026), verteilt auf diese 18 Kisten.
  • Das Gateway (aura-gateway) trennt zwei Ebenen – Daten (SDK, Port 8080) und Verwaltung (Studio, Port 8090) – jede mit ihrem eigenen Middleware-Stack und ihrer eigenen Authentifizierung.
  • Aurabase schreibt PostgREST nicht neu: Die echte Upstream-Binärdatei (v12.2.8) wird pro Mandant ausgeführt, orchestriert durch Rust-Dienste – der Mehrwert liegt darin, nicht stattdessen.
  • Die einzige bemerkenswerte Abweichung vom reinen Rust: Die Standardlaufzeit von Edge Functions (deno-Modus) ist ein dedizierter TypeScript-Dienst, der auf V8-Isolaten basiert; Für den wasm-Modus existiert ein zweiter Pfad, nativ und in Rust über Wasmtime.
18
ARBEITSPLATZKISTEN
11 Dienste + CLI + 5 Bibliotheken + Rust SDK
~274k
Rostlinien
find + wc -l, 23. August 2026
2
GATEWAY-PLÄNE
Daten: 8080 · Verwaltung: 8090
10/11
DIENSTLEISTUNGEN AUF NATS
async-nats in direkter Abhängigkeit
#
Positionierung

Was Aurabase von einem Service für Service zusammengestellten BaaS unterscheidet

Die meisten Open-Source-Postgres-BaaS-Pakete bieten ihre Dienste in mehreren Sprachen an. Dies ist kein Werturteil – es ist eine architektonische Tatsache, die konkrete Konsequenzen hat: Es müssen so viele Kompilierungsketten, Fehlerkonventionen und Authentifizierungslogiken synchron gehalten werden, wie Sprachen im Spiel sind.

Bei Aurabase ist die Produktschicht, die wir selbst schreiben und pflegen – Gateway, Authentifizierung, Datenbank, Echtzeit, Speicher, Benachrichtigungen, KI, Bereitstellung, Kontoverwaltung – ein einziger Cargo-Arbeitsbereich, eine einzige Sprache, eine einzige Build-Kette. Dies ist die Wahl, die diese Datei dokumentiert.

Notwendige Präzision

„Unified Core“ bedeutet nicht, dass alles, was in der Produktion läuft, Rust ist. Wie jedes Postgres-BaaS setzt auch Aurabase auf Open-Source-Bausteine, die es nicht geschrieben hat: PostgreSQL selbst, PostgREST, NATS. Der strukturelle Unterschied zu einem heterogenen Stapel bezieht sich nicht auf diese gemeinsamen Bausteine, sondern auf die Produktschicht, die sie orchestriert. In den folgenden Abschnitten wird detailliert beschrieben, wo genau diese Grenze verläuft, einschließlich der einzigen echten Ausnahme, die wir bei der Prüfung des Codes gefunden haben (Edge-Funktionen, Abschnitt 09).

#
Der Arbeitsbereich

18 Kisten, eine Zusammenstellungskette

Der Stamm Cargo.toml deklariert einen Cargo-Arbeitsbereich in Resolver v2 mit 18 Mitgliedern: 11 Geschäftsdienste, die aura-cliCLI, 5 gemeinsam genutzte Bibliotheken und das aurabase-rsSDK. Hier ist die tatsächliche Liste, wie sie im Repository erscheint.

Cargo.tomltoml
[workspace]
resolver = "2"

members = [
    # Dienstleistungen (11)
    "services/aura-gateway", "services/aura-auth", "services/aura-db",
    "services/aura-provisioner", "services/aura-realtime", "services/aura-storage",
    "services/aura-functions", "services/aura-notifications", "services/aura-ai",
    "services/aura-migrator", "services/aura-control",
    # Werkzeuge
    "aura-cli",
    # Bibliotheken (5)
    "libs/aura-core", "libs/aura-crypto", "libs/aura-db-adapters",
    "libs/aura-migrations", "libs/aura-telemetry",
    "aurabase-rs",
]

Gemeinsame Abhängigkeiten leben in [workspace.dependencies]: Axum 0.8 (mit WebSockets, Multipart, Makros), Tokio, Tower/Tower-HTTP, SQLx 0.8 (Postgres + MongoDB über mongodb für sekundäre NoSQL-Engine), async-nats 0.47, sqlparser 0.53 (SQL-Validierung von NL2SQL), oauth2 5, jsonwebtoken 10 und zwei Leistungsbibliotheken, die in fast jedem Dienst zu finden sind: mimalloc als globaler Allokator und moka/dashmap für den In-Memory-Cache.

Das Release-Profil dokumentiert eine angenommene Wahl: panic = "unwind" statt "abort". Der Dateikommentar ist selbsterklärend – eine Panik in einem Axum/Tokio-Handler wird von der Laufzeit isoliert (die betroffene Anfrage gibt 500 zurück), anstatt den gesamten Prozess zum Absturz zu bringen und konkurrierende Anfragen abzuschneiden. Der Leistungsgewinn vonabort (ungefähr 1 bis 2 % von RPS) ist laut derselben Anmerkung den Verlust der Isolierung nicht wert. Hierbei handelt es sich um einen im Code dokumentierten Kompromiss zwischen Zuverlässigkeit und Geschwindigkeit, nicht um eine Marketingaussage.

Ein einziger cargo build --workspace kompiliert das Ganze. Ein einzelner cargo test --workspace führt die gesamte Testsuite aus. Ein einziger cargo clippy --workspace --all-targets -- -D warnings regelt das gesamte Produkt nach denselben Regeln. Die Details dieser Struktur – Vererbung von Abhängigkeiten, interner Graph zwischen Bibliotheken und Diensten, Fallstricke, auf die wir beim Erweitern gestoßen sind – sind Gegenstand eines speziellen Artikels: Cargo-Workspace-Architektur, wie man ein Rust-Backend mit mehreren Diensten strukturiert.

Rust-Zeilen nach Dienst (find services -name '*.rs' | xargs wc -l, 23. August 2026):

Aura-Kontrolle

36 024

Aura-db

30 255

Aura-Auth

28 431

Aura-Versorger

28 271

Aura-Benachrichtigungen

18 498

wird haben

18 305

Aura-Gateway

16 938

Aura-Echtzeit

16 799

Aura-Speicher

13 747

Aura-Funktionen

11 619

Aura-Migrator

538

Ausgenommen gemeinsam genutzte Bibliotheken (aura-db-adapters: 24.725 Zeilen, aura-core: 7.259, aura-migrations: 3.641, aura-crypto: 2.718, aura-telemetry: 201), die CLI (aura-cli: 9.845) und das Rust SDK (aurabase-rs: 6.363). aura-migrator, ein einmaliger Migrationsjob und kein langlebiger HTTP-Server, bleibt bewusst der kleinste Dienst im Arbeitsbereich.

#
Dienstleistungen

11 Unternehmensdienste, jeweils ein eigenständiger Axum-Server

Jeder Dienst ist eine unabhängige Axum/Tokio-Binärdatei mit eigener Konfiguration und eigenem Port. Zehn der elf stellen /health und /metrics bereit und deklarieren mimalloc als globalen Allokator – die einzige Ausnahme, aura-migrator, ist ein Einzweckjob und kein kontinuierlich laufender Server.

Aura-GatewayDual-Plane-Gateway (Daten:8080, Verwaltung:8090): Proxy für alle anderen Dienste.
Aura-AuthAuthentifizierung: JWT, 15 benannte OAuth-Anbieter + generisches OIDC pro Projekt, Sitzungen, MFA.
Aura-dbDatenbank-API: PostgREST-Verwaltung/Neuladen pro Mandant, Postgres- und MongoDB-Adapter, CDC.
Aura-VersorgerProjektlebenszyklus: dedizierte oder gemeinsam genutzte CNPG-Cluster, Rollen, PostgREST pro Mandant.
Aura-EchtzeitWebSocket und SSE, CDC-Broadcast, instanzübergreifende Präsenz über NATS JetStream KV.
Aura-SpeicherS3-kompatible Objekte (MinIO), RLS-Richtlinien von Postgres übertragbar.
Aura-FunktionenEdge-Funktionen: Bereitstellung, Jobs, Cron, native Wasmtime-Laufzeit (siehe Abschnitt 09).
Aura-BenachrichtigungenE-Mail, Push, ausgehende Webhooks.
wird habenNL2SQL-, RAG- und LLM-Gateway (natives OpenAI, Anthropic, Gemini + jeder OpenAI-kompatible Endpunkt).
Aura-MigratorMigrations-Engine: einzelne Quelle des Bestandsschemas, die bei jeder Bereitstellung wiedergegeben wird.
Aura-KontrolleManagementplan: Entwicklerkonten, Organisationen, Abrechnung, Studio-API.

Die aura CLI (≈ 9.800 Zeilen) kommuniziert mit denselben APIs wie die SDKs – sie hat keinen privilegierten Pfad. Die vollständige Referenz für jeden Dienst befindet sich in der Architekturdokumentation und in der CLI-Referenz .

#
Gemeinsam genutzte Bibliotheken

5 Kisten, die eine Abweichung zwischen den Diensten verhindern

In einem polyglotten Stapel muss eine Sicherheitsregel – Fehlerformat, SSRF-Schutz, Ratenbegrenzung – in jeder Sprache neu implementiert werden und schwankt fast immer im Laufe der Monate. Aurabase codiert es einmal in einer Arbeitsbereichsbibliothek, die von allen betroffenen Diensten genutzt wird.

Aura-Kern7 259 l.Gemeinsam genutzte Grundelemente: Fehler, API-Antwortumschlag, JWT-Ansprüche, interne Dienst-zu-Dienst-Authentifizierung, NATS-Helfer, Ratenbegrenzung, SSRF-geschützter HTTP-Client, Leistungsschalter, Mandantenauflösung, Messung.
Aura-DB-Adapter24 725 l.Eigenschaft zur Anpassung einheitlicher Datenbank-, Postgres- und MongoDB-Implementierungen, die von aura-db verwendet werden.
Aura-Krypto2 718 l.Passwort-Hashing, Token-Generierung, JWT-Signatur/-Validierung, Verschlüsselung auf Feldebene.
Aura-Migrationen3 641 l.Migrations-Engine – einzelne Quelle des Mandantenschemas, wiedergegeben vom Bereitsteller (nicht die Migrationen/spezifischen Ordner für jeden Dienst).
Aura-Telemetrie201 l.OpenTelemetry + Tracing-Konfiguration, gemeinsam von den 11 Diensten.

Direkte Konsequenz: Ein Sicherheitspatch in aura-core – zum Beispiel SSRF-Schutz – wird im nächsten cargo buildan jeden Verbraucherdienst weitergegeben, nicht über fünf separate Patches in fünf Sprachen.

#
Das Tor

Dualer Plan: SDK-Traffic versus Studio-Traffic

aura-gateway trennt zwei Oberflächen, die weder dieselben Clients noch dasselbe Authentifizierungsmodell haben. Die Datenebene (Port 8080, Variable GATEWAY_PORT) empfängt SDK-/App-Verkehr, authentifiziert durch API-Schlüssel (apikey, X-API-Key oder ?apikey=). Die Verwaltungsebene (Port 8090, MANAGEMENT_PORT) empfängt Studio-/Administratordatenverkehr, der von einer JWT-Konsole (Authorization: Bearer) authentifiziert wird.

gateway/routes.rsrust
// Datenebene – API-Schlüssel
.route("/v1/auth/{*path}", any(auth_proxy))
.route("/v1/db/{*path}", any(db_proxy))
.route("/v1/realtime/ws", get(realtime_ws_proxy))
.route("/v1/realtime/sse", get(realtime_sse_proxy))
.route("/v1/storage/{*path}", any(storage_proxy))
.route("/v1/notifications/{*path}", any(notifications_proxy))
.route("/v1/ai/{*path}", any(ai_dispatcher))
.route("/v1/functions/{*path}", any(functions_proxy))

// Managementplan – JWT-Konsole
.route("/v1/control/{*path}", any(control_proxy))

Jede Ebene verfügt über einen eigenen Middleware-Stapel – Abfrageidentifikation, Zugriffsprotokoll, Ratenbegrenzung, Authentifizierung (ebenenspezifisch), Leistungsschalter, dann Proxy – implementiert in separaten Modulen (middleware/rate_limit.rs, middleware/circuit_breaker.rs, middleware/auth_data_plane.rs, middleware/auth_management_plane.rs) und nicht in einer einzelnen Kette, die versehentlich von zwei Oberflächen gemeinsam genutzt wird, die einander nicht auf die gleiche Weise vertrauen sollten. Weg.

Die genaue Reihenfolge der Middlewares, die Ratenbegrenzung pro Ziel und der NATS/HTTP-Proxy sind Gegenstand eines speziellen Artikels: Dual-Plane Gateway, Design a Data-Plane/Management-Plane API Gateway in Rust.

#
Die Daten

Warum Aurabase PostgREST in Rust nicht erneut implementiert

Die selbst generierte REST-API, die das SDK nutzt, ist kein internes Rust-Modul: Es handelt sich um die echte Upstream-Binärdatei PostgREST (postgrest/postgrest:v12.2.8), die in 2 Replikaten pro dediziertem Projekt (deploy/cnpg/tenant-postgrest.yaml) bereitgestellt wird und sich zusammen mit der CNPG-Instanz des Mandanten befindet. aura-provisioner erstellt diese Bereitstellung und aura-db prüft seinen Endpunkt OPTIONS nach jedem Neuladen des Schemas, um zu bestätigen, dass PostgREST die DDL-Änderung berücksichtigt hat.

Dies ist eine angenommene architektonische Entscheidung, keine Abkürzung: PostgREST ist ein ausgereiftes, weit verbreitetes Projekt, dessen schrittweises Umschreiben des Verhaltens in Rust nichts bringen würde. Die Rust-Arbeit von Aurabase konzentriert sich auf – mandantenfähiges Routing, Bereitstellung, Netzwerkisolation durch NetworkPolicy, gemeinsame Authentifizierung mit dem Gateway, orchestriertes Schema-Neuladen – und nicht auf die Abfrage-Engine selbst. Was diese Kompatibilität wirklich abdeckt und wo sie aufhört, ist Gegenstand eines separaten Artikels: PostgREST, tatsächliche Kompatibilität undAlternativen.

Dieselbe Logik auf der GraphQL-Seite: Die Postgres-Erweiterung pg_graphql (vorkompiliertes .deb-Paket, v1.6.1) wird im dedizierten CNPG-Image installiert und bei Bedarf pro Projekt über den POST /v1/control/projects/{project_id}/graphql/enable-Endpunkt aktiviert – auch keine neu geschriebene GraphQL-Engine. Details und ehrlicher Vergleich mit Hasura und PostGraphile: Native GraphQL API auf Postgres mit pg_graphql.

#
Isolierung

RLS- und Authentifikatorrolle, keine Anwendungsschicht

Die mandantenfähige Isolation basiert nicht auf einem WHERE tenant_id = ?-Filter, der von einem Anwendungs-ORM hinzugefügt wird: Jede Anfrage durchläuft die Rolle aura_authenticator, die vor der Ausführung der Anfrage eine SET LOCAL ROLE tenant_<uuid>-Transaktionsebene ausführt – genau das Modell, das PostgREST selbst erwartet. Den Rest erledigt Row-Level Security auf Engine-Ebene, nicht auf Geschäftscode-Ebene.

Nicht alle Projekte verwenden dieselbe Postgres-Topologie. Der aura-provisioner-Code stellt einen ProjectInstanceKind-Typ mit mindestens zwei realen Varianten bereit: FullyDedicated (CNPG-Instanz, die vollständig dem Projekt gewidmet ist) und SharedClusterDedicated (durch RLS isoliertes Schema auf einem gemeinsam genutzten CNPG-Cluster). Der abonnierte Plan bestimmt die Topologie – es handelt sich nicht um ein einheitliches Versprechen einer „dedizierten Basis für alle“.

Scharfsinn

Der Aspekt „Warum eine dedizierte Basis pro Projekt anstelle einer reinen Anwendungsisolation“ ist Gegenstand eines eigenen Artikels: RLS und dedizierte Basis pro Projekt. Die Dokumentation zu Row-Level Security behandelt die praktische Implementierung.

#
Nachrichten

NATS-Kern, nicht JetStream: asynchrone Nachrichtenübermittlung zwischen Diensten

Zehn der elf Business Services deklarieren async-nats als direkte Abhängigkeit in ihrem Cargo.toml – nur aura-migrator verzichtet darauf. Was dieser Crate-Name nicht sagt: Diese Dienste verwenden fast überall die-Kern-Pub/Sub-API (Client::publish / publish_with_headers, at-most-once-Zustellung ohne Persistenz oder Wiedergabe), nicht JetStream. Dies ist im Code für die drei wichtigsten Verwendungszwecke bestätigt: die Verteilung des PostgreSQL-CDC an aura-realtime, die Benachrichtigung über Edge Functions-Jobs in aura-functions (der DLQ selbst befindet sich in Postgres, nicht in NATS) und Bereitstellungsereignisse zwischen aura-provisioner und dem Rest der Flotte.

JetStream – der Persistenz- und Named-Streams-Modus von NATS – erscheint nur an einer verifizierten Stelle im Monorepo: dem instanzübergreifenden Präsenz-KV-Speicher in aura-realtime (Bucket aura_presence, Speicherspeicher, 60 Sekunden max_age), der synchronisiert, wer über mehrere Instanzen von ws-front mit welchem Kanal verbunden ist – ein instanzübergreifender gemeinsamer Zustand, kein Strom von wiederzugebenden Ereignissen. An anderer Stelle im Arbeitsbereich wurden keine persistenten JetStream-Streams gefunden. Die Details der CDC-Pipeline – wal2json, Wahl eines eindeutigen cdc-worker durch Lease Kubernetes, Kern-NATS-Fanout zu den ws-front-Replikaten, RLS-Neuverifizierung durch den Abonnenten – sind Gegenstand eines speziellen Artikels: sendete den PostgreSQL CDC mit NATS. Die Echtzeitdokumentation behandelt die Verwendung auf der SDK-Seite.

#
Die akzeptierte Ausnahme

Edge-Funktionen: zwei Laufzeiten für zwei Anforderungen

Dies ist die wichtigste Nuance dieser Datei und die einzige wirkliche Abweichung vom reinen Rust im Aurabase-Produktcode. Jede Funktion trägt ein runtime-Feld, das den Wert "wasm" oder "deno"hat. Der Aufrufhandler wählt den Ausführungspfad entsprechend aus – tatsächlicher Ausschnitt, auskommentiert im Code selbst:

functions/dispatch.rsrust
// Versand nach Laufzeit: WASM (wasmtime) oder Deno (V8 isoliert über Edge-Runtime)
let resp = if func.runtime == "wasm" {
    state.runtime.invoke(&wasm_bytes, &func.code_hash, req).await?
} else {
    // Proxy für Aura-Edge-Runtime – V8-Isolate (supabase/edge-runtime, MIT)
    proxy_to_edge_runtime(&state.config.edge_runtime_url, …).await?
};

Der wasm-Modus ist nativ: aura-functions hängt direkt von Wasmtime (Version 43, Funktionen async und cranelift) ab und führt das Modul im gleichen Rust-Prozess aus, mit Treibstoffzählung, Unterbrechung nach Epoche und Speicherbegrenzung über StoreLimits. Der deno-Modus – der standardmäßig im Studio-Editor verwendet wird, um nahezu direkte Deno.serve()-Kompatibilität mit vorhandenem Supabase-Code zu gewährleisten – delegiert die Ausführung an aura-edge-runtime, einen separaten TypeScript-Dienst mit etwa 550 Zeilen, der explizit modelliert ist – der Quelldatei-Header-Kommentar selbst zitiert ihn – auf supabase/edge-runtime (MIT Lizenz), die jeden Aufruf in sein eigenes V8-Isolat isoliert.

Warum ist es ehrlich, das so zu sagen?

Die Kontrolle – Bereitstellung, Berechtigungen, Jobs, Cron, Kontingente – bleibt in aura-functionsvollständig in Rust. Nur die Ausführung von Benutzercode im deno-Modus beendet die Rust-Binärdatei. Dies ist ein vertretbarer technischer Kompromiss (V8-Isolate sind das, was Deno nativ für diese Sandboxing-Ebene bereitstellt), und keine Auslassung, die wir lieber geheim halten. Der Wasmtime vs. Wasmer-Vergleich und die WebAssembly-Kaltstartanalyse, die in Kürze in dieser Datei verfügbar sein werden, werden dieses Thema weiter vertiefen.

Die Anleitungen zu beiden Bereitstellungspfaden finden Sie unter Edge Functions. Das Deno-Migrations-Playbook von Supabase finden Sie unter Migrate a Supabase project to Aurabase, wo dieser Unterschied bereits vor dieser Datei dokumentiert wurde.

#
In der Praxis

Was dieses vereinte Herz konkret für Sie verändert

Wenn Sie die API einfach über ein SDK aufrufen, ist diese Architektur unsichtbar – das ist das Ziel. Es ist vor allem für drei Zielgruppen von Bedeutung: diejenigen, die die Betriebszuverlässigkeit eines Multi-Tenant-Backends bewerten, bevor sie Produktionsdaten dorthin migrieren, diejenigen, die einen Beitrag zum Repository leisten möchten (MIT, einzelnes Monorepo) und diejenigen, die verstehen möchten, warum sich ein Sicherheitspatch auf der Aurabase-Seite eher schnell als langsam verbreitet.

Konkret: Ein einzelner IC (cargo build --workspace, cargo test --workspace, cargo clippy --workspace --all-targets -- -D warnings) bedeckt 90 % oder mehr der Produktoberfläche. Eine Codeüberprüfung auf aura-core betrifft möglicherweise zehn Dienste gleichzeitig – zum Guten (ein Fix geht unterwegs nicht verloren) und zum Schlechten (eine schlecht isolierte Änderung verbreitet sich genauso schnell). Es handelt sich um einen Kompromiss, nicht um eine magische Lösung – und genau aus diesem Grund dokumentieren wir die tatsächliche Architektur und nicht eine Marketingzusammenfassung.

#
Ordner-Hub

Der Rest der Rust Engineering-Datei

Diese Pillar-Seite enthält Links zu den technischen Analysen des Clusters, sobald diese veröffentlicht werden. Aktueller Stand zum Zeitpunkt der Veröffentlichung dieser Seite – Links werden aktiv, sobald der entsprechende Artikel online ist.

Cluster A – Framework und Architektur

Axum vs Actix-web: Welches Framework für ein Rust-Backend in der Produktion?Veröffentlicht

Cargo-Workspace-Architektur: So strukturieren Sie ein Rust-Backend mit mehreren DienstenVeröffentlicht

Dual-Plane-Gateway: Entwerfen eines Datenebenen-/Verwaltungsebenen-API-Gateways in RustVeröffentlicht

Cluster B – Selbstgenerierte API auf Postgres

PostgREST: Was die Kompatibilität wirklich abdeckt und welche Alternativen es gibtVeröffentlicht

Native GraphQL-API auf Postgres mit pg_graphql: Was Hasura und PostGraphile nicht dasselbe machenVeröffentlicht

RLS und dedizierte Basis pro Projekt: die Wahl der mandantenfähigen Isolierung von AurabaseVeröffentlicht

Cluster C – Echtzeit und Messaging

Verteilen Sie PostgreSQL CDC mit NATS: EchtzeitarchitekturVeröffentlicht

Cluster D – Edge Functions WebAssembly

Wasmtime vs. Wasmer: Welche WebAssembly-Laufzeit für Edge-Funktionen in der ProduktionKommt bald
Edge-Funktionen in Rust/WASM im Vergleich zu Cloudflare Workers und Vercel EdgeKommt bald
Kaltstart von WebAssembly: Was die Benchmarks wirklich sagen (und was wir noch nicht sagen können)Kommt bald

Cluster E – Migration & Alternativen

Migrieren Sie ein Supabase-Projekt zu Aurabase, ohne Ihre RLS-Richtlinien neu zu schreiben.Veröffentlicht

Souveränes Selbsthosting: Positionierung von Aurabase gegenüber Rust-nativem BaaSIn Kürze erhältlich

#
Häufig gestellte Fragen

FAQs

Ist der Aurabase-Code Open Source?+
Das Repository ist ein einziges Monorepo: Die 18 Rust-Kisten des Arbeitsbereichs, die Client-SDKs (JavaScript, Rust, Python, Dart) und das Next.js Studio leben dort zusammen und werden unter der MIT-Lizenz auf GitHub veröffentlicht.
Kann Aurabase selbst gehostet werden?+
Ja. Mit der lokalen k3d-Bench (./start.sh) und dem offiziellen Helm-Chart (deploy/helm/aurabase/) können Sie den kompletten Stack bereitstellen. Aurabase Cloud bleibt die verwaltete Option, wenn Sie die Infrastruktur nicht selbst betreiben möchten.
Verwendet das JavaScript SDK dieselbe Syntax wie Supabase?+
Im Wesentlichen, ja: createClient(), der verkettete Abfrage-Builder .from().select().eq(), die Authentifizierungsabläufe und die RLS-Richtlinien zielen auf nahezu direkte Kompatibilität ab – das macht eine Migration von Supabase zu Aurabase ohne eine vollständige Neufassung möglich.
Muss man Rust kennen, um Aurabase nutzen zu können?+
Nein. Rust ist die Backend-Sprache, nicht die, die Sie täglich schreiben: Client-SDKs existieren in JavaScript/TypeScript, Rust, Python und Dart, und Edge-Funktionen werden standardmäßig in JavaScript/TypeScript (Deno-Laufzeit) geschrieben. Rust kommt nur ins Spiel, wenn man explizit den nativen WASM-Ausführungsmodus wählt.
Laufen Aurabase Edge-Funktionen wirklich in WebAssembly?+
Dies hängt vom gewählten Modus ab. Im Standardmodus (deno) wird Ihr JavaScript-/TypeScript-Code in V8 Isolates über einen dedizierten Dienst und nicht in einer WASM-Engine ausgeführt. Es gibt einen zweiten Modus (wasm), der nativ im Rust-Aura-Functions-Dienst über Wasmtime ausgeführt wird – dies ist jedoch nicht der Standardpfad.

BEREIT ZUM EINSATZ?

Ihr Backend in fünf Minuten.

Keine Kreditkarte erforderlich · 500 MB kostenlos · 50.000 MAU