Signal
约 1 分钟阅读
- signalappGitHub 组织signalappsignalapp · Signal-Server · AGPLv3, Java · Signal-Android · GPLv3, Java, Kotlin · Signal-iOS · AGPLv3, Swift, ObjC · Signal-Desktop笔记:Signal
- Signal-ServerGitHubsignalapp/Signal-Serversignalapp · Signal-Server · AGPLv3, Java · Signal-Android · GPLv3, Java, Kotlin · Signal-iOS · AGPLv3, Swift, ObjC · Signal-Desktop笔记:Signal
- AGPLv3, Java
- Signal-AndroidGitHubsignalapp/Signal-Androidsignalapp · Signal-Server · AGPLv3, Java · Signal-Android · GPLv3, Java, Kotlin · Signal-iOS · AGPLv3, Swift, ObjC · Signal-Desktop笔记:Signal
- GPLv3, Java, Kotlin
- Signal-iOSGitHubsignalapp/Signal-iOSsignalapp · Signal-Server · AGPLv3, Java · Signal-Android · GPLv3, Java, Kotlin · Signal-iOS · AGPLv3, Swift, ObjC · Signal-Desktop笔记:Signal
- AGPLv3, Swift, ObjC
- Signal-DesktopGitHubsignalapp/Signal-Desktopsignalapp · Signal-Server · AGPLv3, Java · Signal-Android · GPLv3, Java, Kotlin · Signal-iOS · AGPLv3, Swift, ObjC · Signal-Desktop笔记:Signal
- AGPLv3, Typescript, Electron
- libsignalGitHubsignalapp/libsignalsignalapp · Signal-Server · AGPLv3, Java · Signal-Android · GPLv3, Java, Kotlin · Signal-iOS · AGPLv3, Swift, ObjC · Signal-Desktop笔记:Signal
- AGPLv3, Rust, Java, Switf, TypeScript
- Signal-ServerGitHubsignalapp/Signal-Serversignalapp · Signal-Server · AGPLv3, Java · Signal-Android · GPLv3, Java, Kotlin · Signal-iOS · AGPLv3, Swift, ObjC · Signal-Desktop笔记:Signal
- Signal Protocol
- E2E 加密
- 群组消息单独加密
- Double Ratchet
- used by WhatsApp, Facebook Messenger, Google Allo, Signal
- Double Ratchet
- Diffie-Hellman key exchange
- out-of-order messages, message resynchronization, message authentication
- used by Signal, WhatsApp, Wire
Server
- Signal-ServerGitHubsignalapp/Signal-Serversignalapp · Signal-Server · AGPLv3, Java · Signal-Android · GPLv3, Java, Kotlin · Signal-iOS · AGPLv3, Swift, ObjC · Signal-Desktop笔记:Signal
- AGPLv3, Java
- Dropwizard, resilience4j, curve25519-java, Bouncy Castle, Jedis, Lettuce,
Liquibase, libphonenumber - grpc, websocket, graphql
- mockito, wiremock, assertj
- com.eatthepath.pushy
- Redis Pub/Sub
- Redis Lua 定义脚本
- Cache - DynamoDB + Redis
- 旧的 DB messagedb.xmlGitHub 文件signalapp/Signal-Server/service/src/main/resources/messagedb.xml
- 参考
- What I've learned from Signal server source code
- resources/lua/insert_item.luaGitHub 文件signalapp/Signal-Server/service/src/main/resources/lua/insert_item.lua
- messageId=counter++
- ZADD Queue messageId Message
- HSET Meta guid messageId
- EXPIRE Queue 90 days
- EXPIRE Meta 90 days
- resources/lua/insert_item.luaGitHub 文件signalapp/Signal-Server/service/src/main/resources/lua/insert_item.lua
- What I've learned from Signal server source code
proto
- signalapp/Signal-Server/service/src/main/protoGitHub 文件signalapp/Signal-Server/service/src/main/proto
enum PubSubType {
UNKNOWN = 0;
QUERY_DB = 1;
DELIVER = 2;
KEEPALIVE = 3;
CLOSE = 4;
CONNECTED = 5;
}关联信息
反向链接、本文链接的其他页面和外部资料。
参考资料
GitHub9 条
- signalapp/Signal-Servergithub.com/signalapp/Signal-Server
- signalappgithub.com/signalapp
- signalapp/libsignalgithub.com/signalapp/libsignal
- signalapp/Signal-Androidgithub.com/signalapp/Signal-Android
- signalapp/Signal-Desktopgithub.com/signalapp/Signal-Desktop
- signalapp/Signal-iOSgithub.com/signalapp/Signal-iOS
- signalapp/Signal-Server/service/src/main/protogithub.com/signalapp/Signal-Server/tree/main/service/src/main/proto
- signalapp/Signal-Server/service/src/main/resources/lua/insert_item.luagithub.com/signalapp/Signal-Server/blob/main/service/src/main/resources/lua/insert_item.lua
- signalapp/Signal-Server/service/src/main/resources/messagedb.xmlgithub.com/signalapp/Signal-Server/blob/477615fc66ed6307f3d213eff7e18e95fab17fe2/service/src/main/resources/messagedb.xml
其他外链2 条
- signal.org/docs/specifications/doubleratchetsignal.org/docs/specifications/doubleratchet
- softwaremill.com/what-ive-learned-from-signal-server-source-codesoftwaremill.com/what-ive-learned-from-signal-server-source-code