feat: add NIP-77 negentropy sync support
Add support for NIP-77 (Negentropy Syncing) protocol messages using the negentropy-kmp library for efficient set reconciliation between client and relay. New files: - NegOpenCmd, NegMsgCmd, NegCloseCmd: Client-to-relay commands - NegMsgMessage, NegErrMessage: Relay-to-client messages - NegentropySession: Client-side reconciliation orchestrator - NegentropyServerSession: Server-side reconciliation handler - NegentropyManager: High-level sync manager with listener callbacks Updated serializers: - Jackson MessageSerializer/Deserializer for NEG-MSG, NEG-ERR - Jackson CommandSerializer/Deserializer for NEG-OPEN, NEG-MSG, NEG-CLOSE - Kotlin MessageKSerializer/CommandKSerializer for all NIP-77 types Compatible with strfry relay's negentropy implementation via the negentropy-kmp library which implements the same Protocol V1 spec. https://claude.ai/code/session_01Dc6W1G1jURAAR9kzyVvk6g
This commit is contained in:
@@ -41,6 +41,7 @@ materialIconsExtended = "1.7.3"
|
||||
media3 = "1.9.3"
|
||||
mockk = "1.14.9"
|
||||
kotlinx-coroutines-test = "1.10.2"
|
||||
negentropyKmp = "1.0.1"
|
||||
netUrlencoderLibVersion = "1.6.0"
|
||||
navigationCompose = "2.9.7"
|
||||
okhttp = "5.3.2"
|
||||
@@ -156,6 +157,7 @@ markdown-ui-material3 = { group = "com.github.vitorpamplona.compose-richtext", n
|
||||
mockk = { group = "io.mockk", name = "mockk", version.ref = "mockk" }
|
||||
mockk-android = { group = "io.mockk", name = "mockk-android", version.ref = "mockk" }
|
||||
kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "kotlinx-coroutines-test"}
|
||||
negentropy-kmp = { module = "com.vitorpamplona.negentropy:kmp-negentropy", version.ref = "negentropyKmp" }
|
||||
net-thauvin-erik-urlencoder-lib = { module = "net.thauvin.erik.urlencoder:urlencoder-lib", version.ref = "netUrlencoderLibVersion" }
|
||||
okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "okhttp" }
|
||||
okhttpCoroutines = { group = "com.squareup.okhttp3", name = "okhttp-coroutines", version.ref = "okhttp" }
|
||||
|
||||
Reference in New Issue
Block a user