Connect with us

Künstliche Intelligenz

Cross-Plattform-Applikationen mit Rust 2: Crux-Architektur in der Praxis


close notice

This article is also available in
English.

It was translated with technical assistance and editorially reviewed before publication.


Portrait Marcel Koch

Portrait Marcel Koch

Marcel Koch berät mit seinem siebenköpfigen Team kleine und mittelständische Unternehmen und entwickelt branchenübergreifend Cross-Platform-Apps für Desktop und Mobile sowie Webapplikationen – bevorzugt mit TypeScript, Rust, Flutter oder Java, gestützt auf CI/CD und IaC. Dabei setzt er auf pragmatische, passgenaue Lösungen, denn Software ist kein Selbstzweck. Neben soliden technischen Kenntnissen schult er in Gewaltfreier Kommunikation, Transaktionsanalyse sowie Agilität und fördert einen kritischen Blick auf Cloud Hypes. Marcel ist Speaker, Autor von Fachartikeln und Büchern und regelmäßig in Podcasts zu hören.

Die Programmiersprache Rust eignet sich gut für die Umsetzung von Cross-Plattformprojekten. Der erste Teil der Artikelserie hat die grundlegenden Konzepte einer langlebigen Cross-Plattform-Architektur vorgestellt: Ein herausgelöster Core in Rust bildet das Fundament für nachhaltige Apps. Die Implementierung eines einfachen MVVM-Patterns mit ViewModel, Actions und State zeigte eine einfache konkrete Umsetzung dieses Ansatzes. Wie sich die Architektur verfeinern lässt, zeigt sich, wenn man sie um Validierungen erweitert.

Weiterlesen nach der Anzeige

Das in Rust geschriebene Framework Crux für die plattformübergreifende Entwicklung implementiert die im ersten Artikelteil vorgestellten Konzepte. Was Aktion hieß, nennt Crux Event. Der Zustand(State) heißt Model. Durch den ähnlichen Namen ist die Grenze zum ViewModel leider nicht mehr ganz so deutlich. Das ViewModel heißt nämlich auch bei Crux ViewModel. Umso wichtiger ist es, die Abgrenzung bei der Umsetzung im Hinterkopf zu behalten.

Zudem bringt Crux mit Effect und Command noch weitere wichtige Konzepte mit.

Ein Effect bildet einen Seiteneffekt der hexagonalen Architektur ab. In diesem Kontext sind Seiteneffekte gleichbedeutend mit Plattformspezifika und dem Rendern des User Interface (UI). Dabei ist ein Effect keine Einbahnstraße. Durch ein Command lässt es sich mit einem Event verknüpfen, sodass der verarbeitete Effekt beantwortet und die Antwort in der App auf ein weiteres Event angewendet werden kann. Auf diese Art lässt sich der Zugriff auf das jeweilige Dateisystem und auf native APIs abstrahieren und umsetzen.

Crux definiert außerdem die Begriffe App, Core und Shell.

Weiterlesen nach der Anzeige

  • Die App ist das zentrale Trait und ein Pendant zum Core aus Teil 1
  • Core umhüllt die App und sorgt dafür, dass ein Event in die App hinein- und nur eine Liste von Effect oder das ViewModel aus der App hinausgeht
  • Shell bezeichnetet den Konsumenten des Cores (bepackt mit der App), wie eine native App auf Basis von Swift, Kotlin oder C#



Die Architektur von Crux unterscheidet App, Core und Shell und Effekte (Abb. 1)

(Bild: Marcel Koch)

Das zuvor in Teil 1 implementierte Beispiel wird erneut aufgegriffen und auf Crux übertragen. Als Erstes die einfachen Typen (Listing 1):

Listing 1: Crux: Event/Model/ViewModel-Definitionen


#[derive(Deserialize, Serialize)]
pub enum Event {
    ChangeName(String),
    ChangeEmail(String),
    ApplyChanges,
}

#[derive(Default)]
pub struct Model {
    name: String,
    email: String,
}

#[derive(Deserialize, Serialize)]
pub struct ViewModel {
    pub name: String,
    pub email: String,
}


Hierbei gibt es keine Überraschungen. Actions werden zu Event (Einzahl), State wird zu Model und das ViewModel bleibt bestehen.

Als Nächstes die neuen Typen (Listing 2):

Listing 2: Crux: Effect-Enum und App-Struct


#[effect]
pub enum Effect {
    Render(RenderOperation),
}

#[derive(Default)]
pub struct EmailApp;


Das Enum Effect definiert alle möglichen Kommunikationen aus dem Core hinaus. Das Struct EmailApp bleibt leer. Es implementiert im nächsten Schritt das Trait App von Crux.

Die Implementierung von App ist in drei Blöcke (siehe Kommentare in Listing 3) unterteilt.

Listing 3: Crux: App-Trait-Implementierung


impl App for EmailApp {
    // 1
    type Event = Event;
    type Model = Model;
    type ViewModel = ViewModel;
    type Capabilities = (); // deprecated
    type Effect = Effect;

    // 2
    fn update(
        &self,
        event: Self::Event,
        model: &mut Self::Model,
        _caps: &Self::Capabilities,
    ) -> Command<:effect self::event=""> {
        match event {
            Event::ChangeEmail(email) => {
                model.email = email.clone();
            }
            Event::ChangeName(name) => {
                model.name = name.clone();
            }
            Event::ApplyChanges => {}
        }
        render()
    }

    // 3
    fn view(&self, model: &Self::Model) -> Self::ViewModel {
        ViewModel {
            name: model.name.clone(),
            email: model.email.clone(),
        }
    }
}


Der erste Block legt die grundlegenden assoziierten Typen fest, die App vorsieht. Diese Typen sind aus Listing 1 und 2 bekannt. Der Typ Capabilities ist ein Relikt und gilt als veraltet (deprecated). Dieses Konzept wurde vor der Einführung von Command genutzt. Daher ist es lediglich aus Gründen der Rückwärtskompatibilität vorhanden und lässt sich ignorieren.

Die update-Methode nimmt eingehende Events entgegen und passt daraufhin den Zustand (Model) an. Änderungen am Namen oder der E-Mail-Adresse werden auch hier direkt im Model gespeichert. Nach der Verarbeitung eines Events wird ein RenderEffect ausgelöst. Dieser kann in der Shell aufgegriffen, das ViewModel angefragt und das Re-Rendering angestoßen werden.

Die view-Methode in Abschnitt 3 bietet die Schnittstelle, um das ViewModel zu erstellen. Wie zuvor erzeugt das ViewModel das aktuelle Model (Zustand) und bereitet die relevanten Informationen für die UI so auf, dass die Benutzeroberfläche sie direkt anzeigen kann.

Um die App zu verwenden, gilt es diese im Core zu umhüllen (zu wrappen):

let core: Arc> = Arc::new(Core::new());

Dieser Core-Instanz lässt sich ein Event übergeben und die zurückkommenden Effekte können verarbeitet werden (Listing 4).

Listing 4: Crux: Effect-Verarbeitung


let effects: Vec =
    core.process_event(ChangeEmail("marcel.koch@example.org".into()));

for effect in effects {
  match effect {
    Effect::Render(_) => {
      let view_model = core.view();
      
      assert_eq!(view_model.email, "marcel.koch@example.org")
    }
  }
}


process_event nimmt das Event entgegen und gibt eine Liste von Effekten zurück. Das Beispiel behandelt nur eine Art von Effect: Render. Es wird geprüft, ob das ViewModel die eben übergebene E-Mail-Adresse enthält.

Ist das UI verbunden, tritt es bei jeder Änderung der E-Mail-Adresse auf.

Geht es nicht um einen reinen Aufruf innerhalb von Rust, ist die Integration in andere Technologien abhängig von Serialisierung. Diese Aufgabe übernimmt auf der Rust-Seite die Bridge. Ein einfacher Einsatz sähe in Rust wie folgt aus:

Listing 5: Crux: Bridge-Integration


let serialized = 
    bincode::serialize(&ChangeEmail("marcel.koch@example.org".into())).unwrap();

let effects: Vec = bridge.process_event(&serialized).unwrap();

let effects: Vec> =
bincode::deserialize(effects.as_slice()).unwrap();

for request in effects {
  let effect = request.effect;
  
  match effect {
    EffectFfi::Render(_) => {
    let view_model = bridge.view().unwrap();
    let view_model: ViewModel =
    bincode::deserialize(&view_model).unwrap();
    
    assert_eq!(view_model.email, "marcel.koch@example.org")
    }
  }
}


Es ist der gleiche Ablauf wie zuvor mit dem reinen Core. Die einzigen Unterschiede sind die Serialisierung des Events und die Deserialisierung der Effekte und des ViewModel. Diese Serialisierungen werden in einem realistischen Einsatz in den jeweiligen Fremdtechnologien (.NET, Swift etc.) durchgeführt. Diese Umsetzung zeigt der nächste Teil dieser Artikelserie.



Source link

Künstliche Intelligenz

iX-Workshop: IT-Recht für Admins – Wege zur gesetzeskonformen IT-Praxis


Administratoren verwalten Benutzerkonten und Zugriffsrechte, Lizenzen und urheberrechtlich geschütztes Material, verantworten Fehlkonfigurationen oder Sicherheitslücken, prüfen IT-Verträge und gehen aktiv gegen Angriffe, Schadsoftware oder andere Bedrohungen vor. Dabei müssen sie sich mit verschiedenen rechtlichen Aspekten auseinandersetzen, um die Unternehmens-IT rechtssicher zu betreiben und auch auf der juristischen Seite mögliche Risiken zu minimieren.

Weiterlesen nach der Anzeige

In dem praxisorientierten Workshop IT-Recht für Admins – Grundlagen, Stolperfallen und Praxis erklären Ihnen der Jurist Joerg Heidrich und der Berater für Informationssicherheit und Datenschutz Christoph Wegener, wie Sie als IT-Spezialist mit konkreten rechtlichen Fragen in Ihrer täglichen Arbeit umgehen. Sie erfahren, was Sie als Administrator aus rechtlicher Sicht dürfen, welche Grenzen Sie beachten müssen und in welchen Situationen Sie sogar rechtlichen Verpflichtungen unterliegen.

Zu den behandelten Themen zählen unter anderem Datenschutz, sicheres Logging und Backups, Mitbestimmung, BYOD, Löschpflichten und Löschkonzepte sowie der Umgang mit IT-Sicherheits- und Datenschutzvorfällen. Ein weiterer Schwerpunkt liegt auf den aktuellen Anforderungen des CRA, NIS-2 und des AI Acts und der zunehmenden Bedeutung des Zusammenspiels von Recht und Technik im IT-Bereich.

De Workshop spricht nicht nur System- und Netzwerkadministratoren an, sondern auch IT-Entscheider und Sicherheitsbeauftragte, die sich einen fundierten Überblick über die aktuelle Rechtslage mit ihren Möglichkeiten und Risiken verschaffen wollen.

Februar
23.02.2026
Online-Workshop, 09:00 – 17:00 Uhr
Mai
08.05.2026
Online-Workshop, 09:00 – 17:00 Uhr
10 % Frühbucher-Rabatt bis zum 10. Apr. 2026
September
22.09.2026
Online-Workshop, 09:00 – 17:00 Uhr
10 % Frühbucher-Rabatt bis zum 25. Aug. 2026
November
27.11.2026
Online-Workshop, 09:00 – 17:00 Uhr
10 % Frühbucher-Rabatt bis zum 30. Okt. 2026

Unsere erfahrenen Referenten gehen in diesem Online-Workshop auf konkrete Rechtsfragen ein, die im IT-Alltag auftreten. Dr. Christoph Wegener ist seit 1999 mit wecon.it-consulting freiberuflicher Berater in den Bereichen Informationssicherheit, Datenschutz und Open Source. Joerg Heidrich ist Justiziar und Datenschutzbeauftragter bei heise medien und außerdem als Rechtsanwalt in Hannover tätig.

Sie haben in diesem Workshop die Möglichkeit, das vermittelte Wissen durch Fragen und Diskussionen zu vertiefen und eigene Situationen einzubringen. Die Teilnehmerzahl ist auf 20 Personen begrenzt, sichern Sie sich daher rechtzeitig Ihren Platz.

Weiterlesen nach der Anzeige


Upgrade für Ihre IT-Skills - Von Experte zu Experte

Upgrade für Ihre IT-Skills - Von Experte zu Experte


(ilk)



Source link

Weiterlesen

Künstliche Intelligenz

OpenClaw im Selbstversuch: Erste Schritte mit dem Super-KI-Agenten


Mails versenden, Kalender bearbeiten, Skripte schreiben und ausführen: LLMs können ziemlich selbstständig viel mehr Dinge erledigen, als man sich als Normal-Nutzer erträumt. Wer sich mit KI-Entwicklung beschäftigt, kann so etwas seit einiger Zeit über Mechanismen wie „function calling“ aufsetzen. Doch gibt es mit OpenClaw eine kostenlose Software, die all diese Funktionen und noch mehr bietet und dabei auch noch verblüffend einfach zu nutzen ist. Wer sie installiert, chattet nicht mehr nur mit seinen LLMs, sondern lässt sie Aufgaben erledigen. Der Fantasie sind kaum Grenzen gesetzt.

Wir haben uns ein paar Tage intensiv mit OpenClaw beschäftigt, dem Tool einen E-Mail-Zugang gegeben und es kleine organisatorische Aufgaben übernehmen lassen. Weil so ein mächtiges Werkzeug auch allerhand Angriffsfläche für Sicherheitslücken bietet, gehen wir auf Nummer sicher: OpenClaw arbeitet auf einem frisch aufgesetzten Linux und erhält keinen Zugriff auf wichtige Accounts. OpenClaw ist zunächst nur ein Framework. Damit es funktioniert, muss es ein KI-Modell laden. Dafür bieten sich leistungsfähige LLMs an. Wir verwenden das recht günstige günstige Gemini 3 Flash Preview über einen Api-Zugang. So liegen die Kosten für unseren Versuch nur bei wenigen Euro.

  • Mit OpenClaw können LLMs digitale Werkzeuge nutzen, um Mails zu verschicken, Skripte zu schreiben und diverse Aktionen auszuführen.
  • Die Einrichtung ist verblüffend einfach. Allerdings ist Vorsicht geboten: Mit den mächtigen Fähigkeiten der Software gehen große Sicherheitsrisiken einher.
  • Der Artikel beschreibt kurz die Installation von OpenClaw und erläutert, wie sich die KI bei verschiedenen Test-Aufgaben geschlagen hat. Die hat sie insgesamt sehr gut bewältigt, wobei sie sich auch manch groben Fehltritt erlaubte.

Der Artikel erläutert, wie man OpenClaw schnell zum Ausprobieren installieren kann und beschreibt einige Beispiele von Testaufgaben für den Agenten. Wie schlägt sich die KI etwa bei der Auswertung von Mails und als Reddit-Scraper? Wir werfen auch einen kurzen Blick ins Dateisystem, in dem unter anderem das Gedächtnis der KI liegt. Während des Tests zeigt unser Agent zwar auch Schwächen und macht Fehler. Aber die ließen sich recht schnell beheben. So sind wir vor allem beeindruckt davon, was OpenClaw in kurzer Zeit vollbringt.


Das war die Leseprobe unseres heise-Plus-Artikels „OpenClaw im Selbstversuch: Erste Schritte mit dem Super-KI-Agenten“.
Mit einem heise-Plus-Abo können Sie den ganzen Artikel lesen.



Source link

Weiterlesen

Künstliche Intelligenz

API-Konferenz von heise: Know-how zu Konzepten, Sicherheit und KI-Schnittstellen


APIs bilden einen zentralen Aspekt beim Gestalten komplexer Systemarchitekturen, und sie verbinden die verschiedenen Domänen und Dienste untereinander. Dabei öffnen sie spezifisches Wissen für das Gesamtsystem und teilen es mit anderen. Bei der Entwicklung gilt es, einige Herausforderungen an Konstruktion, Sicherheit, Wartbarkeit und Kommunikation zu bewältigen.

Weiterlesen nach der Anzeige


Kin Lane

Kin Lane

API-Evangelist Kin Lane spricht über „Sandboxes Shape What You Are Capable of Automating“.

Diesen Themen widmet sich die Online-Konferenz betterCode() API von iX und dpunkt.verlag. Das zweitägige Event am 12. und 21. Mai 2026 richtet sich an Entwicklerinnen, Softwarearchitekten sowie API-Beauftragte im Management und bietet Know-how, Trends sowie Erfahrungsberichte aus der Praxis.

Die dreizehn 45-minütigen Vorträge geben einen Überblick über grundlegende API-Konzepte und vertiefen Aspekte, wie Sicherheit, Caching, API als Produkt oder Gateways. Auch MCP als moderne Schnittstelle für LLMs ist ein Thema. Das Programm enthält unter anderem folgende Vorträge:

  • APIs, die sprechen: Domain-driven Design für bessere Schnittstellen
  • Keine Panik vor Agenten! Mit MCP und AI-Gateways per Anhalter durch die neue API-Galaxis
  • API First reicht nicht mehr – Migration eines Monolithen mit MCP im Zielbild
  • Caching-Strategien für moderne REST APIs: Von simplen Browser-Headern zu intelligentem Edge-Computing
  • Spec-driven API Design: APIs als Produkte mit spec-kit
  • Building and Testing REST APIs in the AI Era with Spec-Driven Development
  • Einfacher gesagt als getan – APIs als Produkte
  • uvm.


Golo Roden

Golo Roden

Golo Roden entwickelt in seinem Workshop Schritt für Schritt eine API ausgehend von einer realistischen Fachdomäne.

Die beiden ganztägigen Workshops vertiefen das theoretische Wissen in der Praxis. Die Teilnehmerinnen und Teilnehmer diskutieren und üben gemeinsam. Am 11. Mai 2026 entwickelt Golo Roden in seinem Workshop Von der Domäne zur API: Fachlich getriebenes API-Design in der Praxis gemeinsam mit den Teilnehmenden Schritt für Schritt eine API ausgehend von einer realistischen Fachdomäne.

Weiterlesen nach der Anzeige

Am 18. Juni 2026 zeigt Tobias Polley API-Sicherheit in der Praxis: Angriff und Verteidigung. Im Workshop lernen die Teilnehmenden, wie ein Hacker zu denken und Schwachstellen zu entdecken.

Ein Ticket zum Frühbucherpreis kostet für beide Tage 449 Euro (alle zzgl. MwSt.) und für einen Tag 249 Euro. Der Tarif für einen Workshop liegt bei 549 Euro. Gruppen bekommen im Shop automatisch Rabatt und auch Schülerinnen, Schüler, Studierende sowie Hochschulangehörige erhalten auf Anfrage einen Nachlass.

Wer über die API- und weitere betterCode()-Konferenzen auf dem Laufenden bleiben möchte, meldet sich auf der Website zum Newsletter an.


(who)



Source link

Weiterlesen

Beliebt