mana-swift-event-sync/README.md
Till JS 3be550a154 feat: ManaEventSync E-4.0–E-4.2 — geteilte native Event-Sync-Lib
Extrahiert die zuvor zweimal von Hand gebaute Plumbing aus pageta-native
+ nutriphi-native in ein Paket ManaEventSync (Counterpart zu @mana/event-sync):

- Core: EventEnvelope (+clientId/payloadHash), JSONValue, ULID, JWTSubject, EventSyncError
- EventStorage (SwiftData): parametrierbar (Store/App-Group/additionalModels/In-Memory),
  Outbox, Claim-Reattribute, Anonymous-Retention-Prune
- Transport: SyncHTTPClient (+X-Schema-Hash/422), optionaler SyncWSClient
- Crypto: CryptoProvider/NoOp/MasterKey (AES-GCM enc:1:), VaultClient — opt-in
- EventSyncEngine: besitzt die Identität (makeEnvelope anon/echt), emit offline,
  signIn(realUserId) re-taggt idempotent + drained, Retention 10k/90d

18 Tests grün. Plan: mana/docs/playbooks/MANA_SWIFT_EVENT_SYNC.md.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-25 12:39:59 +02:00

32 lines
1.1 KiB
Markdown

# mana-swift-event-sync
`ManaEventSync` — der native Swift-Counterpart zu `@mana/event-sync`.
Eine geteilte Event-Sourcing-Sync-Bibliothek für alle nativen
mana-e.V.-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`](CHANGELOG.md). Plan + Phasen:
[`../mana/docs/playbooks/MANA_SWIFT_EVENT_SYNC.md`](../mana/docs/playbooks/MANA_SWIFT_EVENT_SYNC.md).
## Lokal
```bash
swift build
swift test
```