CommunityCodierung & Entwicklunggithub.com

24601/surreal-skills

SurrealDB Surrealism WASM-Erweiterungsentwicklung. Schreibe Rust-Funktionen, kompiliere sie nach WASM und stelle sie als Datenbankmodule bereit. Teil der surreal-skills-Kollektion.

Was ist surreal-skills?

Dieses Skill ermöglicht die Entwicklung und Bereitstellung von WebAssembly (WASM)-Erweiterungen für SurrealDB mithilfe des Surrealism-Frameworks. Es richtet sich an Entwickler, die benutzerdefinierte Funktionen in Rust schreiben, sie zu WASM kompilieren und als native Datenbankmodule in SurrealDB registrieren möchten. Der Workflow umfasst das Annotieren von Rust-Funktionen mit `#[surrealism]`, das Kompilieren mit dem `surreal module compile`-CLI-Befehl und das Registrieren des Moduls mittels SurrealQL-Kommandos wie `DEFINE BUCKET` und `DEFINE MODULE`. Zu den Anwendungsfällen gehören skalare Funktionen in SurrealQL, Fake-Datengenerierung, domänenspezifische Logik und der Zugriff auf Rust-Crate-Funktionalitäten. Das Skill unterstützt SurrealDB ab Version 3 und erfordert das Rust-Toolchain-Ziel `wasm32-unknown-unknown` sowie die SurrealDB CLI v3.1.4 oder höher.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/24601/surreal-skills/tree/main/skills/surrealism

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Surrealism – WASM-Erweiterungen für SurrealDB

Neu in SurrealDB 3. Schreiben Sie benutzerdefinierte Funktionen in Rust, kompilieren Sie sie nach WebAssembly (WASM) und stellen Sie sie als native Datenbankmodule bereit, die aus SurrealQL aufgerufen werden können.

Voraussetzungen

  • Rust-Toolchain (stabil) mit Ziel wasm32-unknown-unknown
  • SurrealDB CLI v3.1.4+ (surreal-Binärdatei mit Unterbefehl surreal module)
  • Vertrautheit mit SurrealQL DEFINE MODULE und DEFINE BUCKET

Entwicklungsworkflow

1. Annotieren   – surrealism.toml + #[surrealism] bei Rust-Funktionen
2. Kompilieren  – surreal module compile  (erzeugt .wasm-Binärdatei)
3. Registrieren – DEFINE BUCKET + DEFINE MODULE in SurrealQL

Kurzanleitung

# Neues Surrealism-Projekt erstellen
cargo new --lib my_extension
cd my_extension

# WASM-Ziel hinzufügen
rustup target add wasm32-unknown-unknown

# surrealism.toml erstellen (erforderliches Manifest)
cat > surrealism.toml << 'TOML'
[package]
name = "my_extension"
version = "0.1.0"
TOML

# Erweiterung schreiben (mit #[surrealism] annotieren)
cat > src/lib.rs << 'RUST'
use surrealism::surrealism;

#[surrealism]
fn greet(name: String) -> String {
    format!("Hello, {}!", name)
}
RUST

# Mit SurrealDB CLI nach WASM kompilieren
surreal module compile

# In SurrealDB registrieren
surreal sql --endpoint http://localhost:8000 --user root --pass root --ns test --db test
-- Zugriff auf die WASM-Datei gewähren
DEFINE BUCKET my_bucket;

-- Die Modulfunktionen registrieren
DEFINE MODULE my_extension FROM 'my_bucket:my_extension.wasm';

-- Die Funktion in Abfragen verwenden
SELECT my_extension::greet('World');

Anwendungsfälle

  • Benutzerdefinierte skalare Funktionen, die aus SurrealQL aufgerufen werden können
  • Fake-/Mock-Datengenerierung für Tests
  • Domänenspezifische Logik (Sprachverarbeitung, quantitative Finanzen, benutzerdefinierte Kodierung)
  • Zugriff auf spezielle Rust-Crate-Funktionalitäten, die zu spezifisch für das SurrealDB-Kernsystem sind
  • Benutzerdefinierte Analysefunktionen für die Volltextsuche

Status

Surrealism befindet sich in aktiver Entwicklung und ist noch nicht stabil. Die API kann sich zwischen SurrealDB 3.x-Releases ändern. Feedback über GitHub-Issues/PRs im surrealdb/surrealdb-Repository einreichen.

Vollständige Dokumentation

Die Haupt-Regeldatei dieses Skills enthält die vollständige Anleitung:

Individual skills in this repo

This repo contains 5 individual skills — each has its own dedicated page.

Verwandte Skills