mirror of
https://github.com/logos-messaging/pm.git
synced 2026-01-02 14:13:09 +00:00
39 lines
1.7 KiB
Markdown
39 lines
1.7 KiB
Markdown
# Chat SDK
|
|
|
|
## Functionality
|
|
|
|
1. Accounts can be created in a permission-less way, to communicate on the network.
|
|
2. Accounts can send messages to conversations with one other participant.
|
|
3. All conversations benefit from forward secrecy and post-compromise security.
|
|
4. Sender gets confirmation of message reception by recipient device.
|
|
5. Developers can create their own payload types or use supplied basic types.
|
|
6. Sdk contains a default message database for developers.
|
|
7. Sdk contains a default secrets database for developers.
|
|
|
|
## Usability
|
|
|
|
1. Secure session setups are non-interactive, allowing messages to be sent without waiting for the recipient's device to come online.
|
|
2. Conversations are initiated by sharing invite links out-of-band.
|
|
3. Minimal example of the ChatSDK is no more than 25 lines of code.
|
|
|
|
## Reliability
|
|
|
|
1. Participants in a conversation can eventually determine whether they missed messages.
|
|
|
|
## Performance
|
|
|
|
1. 10K active SDK users on a single shard add no more than an average of 10Mbps to the total bandwidth; based on clients generating 100 character chat messages, 4 times per minute.
|
|
|
|
## Supportability
|
|
|
|
1. Messaging integrates RLN-like rate limit, limiting outbound messages per epoch.
|
|
2. Payload definitions are versioned to support future protocol updates.
|
|
3. library can be used in Go applications; available on pkg.go.dev.
|
|
4. library can be used in Rust applications; import via git path.
|
|
|
|
## + (Privacy, Anonymity, Deployments)
|
|
|
|
1. Non-participants in the conversation cannot correlate individual messages to a sender.
|
|
2. Non-participants in the conversation cannot correlate conversation to participants.
|
|
3. Network observers cannot aggregate account holder activity.
|
|
4. Nimble package manager is used to build. |