Geteilte native Event-Sourcing-Sync-Lib (Counterpart zu @mana/event-sync). Local-First mit Anonymous-Mode + Claim. — Apache-2.0, Spiegel des Vereins mana.
Find a file
Till JS 37dad42a5c README: Bau-Anleitung aus offenen Klonen und Erwartungssatz
Vorbereitung für die Spiegelung nach git.mana.how/offen (Prüfliste
QUELLOEFFNUNG.md §5): Sweep sauber, keine Privat-Marker, Apache-2.0 mit
NOTICE seit Welle 1, Schriften mit OFL-Texten.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-30 13:35:32 +02:00
devlog devlog: Repo-Historie nachgezogen (spieler+macher) 2026-06-16 01:44:32 +02:00
Sources/ManaEventSync fix: lokal emittierte Events sortieren nicht mehr vor den gesyncten 2026-07-27 14:52:37 +02:00
Tests/ManaEventSyncTests fix: lokal emittierte Events sortieren nicht mehr vor den gesyncten 2026-07-27 14:52:37 +02:00
.gitignore feat: ManaEventSync E-4.0–E-4.2 — geteilte native Event-Sync-Lib 2026-05-25 12:39:59 +02:00
.swiftformat feat: ManaEventSync E-4.0–E-4.2 — geteilte native Event-Sync-Lib 2026-05-25 12:39:59 +02:00
.swiftlint.yml chore(lint): swiftlint --strict sauber (0 Violations) 2026-05-25 15:49:48 +02:00
CHANGELOG.md release v0.10.0 — Cloud-Sync-Opt-in-Gate 2026-06-23 16:14:14 +02:00
CLAUDE.md mana statt »e.V.«: Schweizer Verein (kein Store-Release, nur Quelltext-Korrektur) 2026-06-17 20:32:28 +02:00
LICENSE Apache-2.0: LICENSE + NOTICE 2026-08-03 23:05:06 +02:00
NOTICE Apache-2.0: LICENSE + NOTICE 2026-08-03 23:05:06 +02:00
Package.swift feat: ManaEventSync E-4.0–E-4.2 — geteilte native Event-Sync-Lib 2026-05-25 12:39:59 +02:00
README.md README: Bau-Anleitung aus offenen Klonen und Erwartungssatz 2026-09-30 13:35:32 +02:00

mana-swift-event-sync

ManaEventSync — der native Swift-Counterpart zu @mana/event-sync. Eine geteilte Event-Sourcing-Sync-Bibliothek für alle nativen mana-Apps: lokaler Event-Log + Projektion, Outbox, HTTP/WebSocket- Sync gegen mana-sync (sync2.mana.how), optionale Payload-Crypto und Local-First mit Anonymous-Mode + Claim bei Login.

Vereinheitlicht die zuvor zweimal von Hand gebaute Plumbing aus pageta-native und nutriphi-native.

Was die App liefert, was die Lib liefert

  • Lib (ManaEventSync): Wire-Format (EventEnvelope), EventStorage (SwiftData), SyncHTTPClient + optionaler SyncWSClient, optionale CryptoProvider/VaultClient, die EventSyncEngine mit Anonymous- Identität + signIn-Claim.
  • App: ihre Domäne — Payload-Typen, State-Projektionen, Reducer und ein dünner Coordinator, der engine.makeEnvelope/emit/events(forAggregate:) nutzt.

Stand

Siehe CHANGELOG.md. Plan + Phasen: ../mana/docs/playbooks/MANA_SWIFT_EVENT_SYNC.md.

Lokal

swift build
swift test

Bauen

Swift Package. Die Abhängigkeiten auf andere mana-Bibliotheken sind Pfad-Abhängigkeiten — alle nebeneinander in denselben Ordner klonen:

for r in mana-swift-core mana-swift-llm mana-swift-event-sync mana-swift-ui; do
  git clone https://git.mana.how/offen/$r.git
done
swift build   # im jeweiligen Ordner

Für Mitlesende

Dieses Repo gehört zum Ökosystem von mana und liegt offen, damit andere es lesen, einordnen und als Grundlage nutzen können — das spart Arbeit, egal ob ein Mensch oder ein Modell davorsitzt.

Was du erwarten darfst: den Code so, wie er tatsächlich in Gebrauch ist, unter Apache-2.0 (siehe LICENSE und NOTICE). Keine Attrappe, kein zurechtgeschnittener Auszug — samt seiner Geschichte.

Was du nicht erwarten darfst: Support, Antwortzeiten, Zusagen zur Abwärtskompatibilität oder die Übernahme von Änderungswünschen. Dieses Repo folgt dem, was die eigenen Anwendungen brauchen. Fehlermeldungen sind willkommen, eine Antwort ist nicht zugesagt.

Fork ist ausdrücklich erlaubt und oft der schnellere Weg als zu warten.