Quartz
Quartz ist eine Kotlin-Multiplatform-Bibliothek für Nostr, entwickelt von Vitor Pamplona. Sie ist die gemeinsame Protokoll- und Datenschicht hinter Amethysts Weg zu Android, Desktop und später iOS aus einer einzigen Codebasis.
Funktionsweise
Quartz stellt zentrale Nostr-Funktionalität als gemeinsam genutzte Bibliothek bereit:
- Event Handling: Parsing, Validierung und Erstellung von Nostr-Events
- Cryptography: Secp256k1-Signierung, NIP-44-Verschlüsselung und Schlüsselverwaltung
- Relay Communication: Verbindungsverwaltung, Nachrichtenreihenfolge und Subscription-Handling
- NIP Support: Implementierung gängiger NIPs, darunter NIP-06, NIP-19, NIP-44 und weitere
Warum das wichtig ist
Quartz verschiebt protokollschwere Logik aus einer einzelnen App in eine wiederverwendbare Bibliothek. Das ist wichtig, weil Relay-Handling, Event-Parsing, Verschlüsselung und Speicherregeln so leichter zwischen Clients geteilt werden können, statt auf jeder Plattform neu implementiert zu werden.
Das konkrete Ergebnis war bereits in Amethysts Desktop-Arbeit sichtbar. Der durch Grants finanzierte Refactor verlagerte gemeinsamen Code in Kotlin-Multiplatform-Module wie commonMain, jvmAndroid und jvmMain, sodass Desktop-Unterstützung eher ein Bibliotheks- und Modulproblem als ein kompletter Rewrite wurde.
Architektur
Die Bibliothek nutzt eine modulare Source-Set-Struktur:
commonMain: Gemeinsamer Code für alle PlattformenjvmAndroid: Code, der von JVM und Android geteilt wirdandroidMain: Android-spezifische ImplementierungenjvmMain: JVM-Implementierungen für DesktopiosMain: iOS-spezifische Implementierungen
Aktueller Stand
Im Dezember 2025 kündigte OpenSats die Finanzierung von Quartz in der vierzehnten Welle seiner Nostr-Grants an. Das Repo existiert als eigenständige Bibliothek, aber ein großer Teil des sichtbaren Fortschritts landete bisher über Amethyst-PRs, die App-Module in Multiplatform-Code umwandeln und Feature-Parität über mehrere Ziele hinweg verfolgen.
Primärquellen:
Erwähnt in:
Siehe auch: