commonware-chat

Crates.iocommonware-chat
lib.rscommonware-chat
version
sourcesrc
created_at2024-08-08 13:30:04.686731
updated_at2024-12-11 14:49:51.353222
descriptionSend encrypted messages to a group of friends using commonware-cryptography and commonware-p2p.
homepagehttps://commonware.xyz
repositoryhttps://github.com/commonwarexyz/monorepo/tree/main/examples/chat
max_upload_size
id1329540
Cargo.toml error:TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
Patrick O'Grady (patrick-ogrady)

documentation

https://docs.rs/commonware-chat

README

commonware-chat

Crates.io Docs.rs

Send encrypted messages to a group of friends using commonware-cryptography::ed25519 and commonware-p2p::authenticated.

Offline Friends

commonware-chat only sends messages to connected friends. If a friend is offline at the time a message is sent, commonware-p2p::authenticated will drop the message. You can confirm you are connected to all your friends by checking the value of p2p_connections in the "Metrics Panel" in the right corner of the window. This metric should be equal to count(friends)- 1 (you don't connect to yourself).

Synchronized Friends

commonware-p2p::authenticated requires all friends to have the same set of friends for friend discovery to work correctly. If you do not synchronize friends, you may be able to form connections between specific friends but may not be able to form connections with all friends. You can learn more about why this is here. Other dialects of commonware-p2p may not have this requirement.

Usage (4 Friends)

Friend 1 (Bootstrapper)

cargo run --release -- --me=1@3001 --friends=1,2,3,4

Friend 2

cargo run --release -- --me=2@3002 --friends=1,2,3,4 --bootstrappers=1@127.0.0.1:3001 

Friend 3

cargo run --release -- --me=3@3003 --friends=1,2,3,4 --bootstrappers=1@127.0.0.1:3001 

Friend 4 (Different Friend as Bootstrapper)

cargo run --release -- --me=4@3004 --friends=1,2,3,4 --bootstrappers=3@127.0.0.1:3003

Not Friend (Blocked)

cargo run --release -- --me=5@3005 --friends=1,2,3,4,5 --bootstrappers=1@127.0.0.1:3001 
Commit count: 0

cargo fmt