nysiris-chat-core
Peer-to-peer chat engine for Nysiris-native clients: sealed 1:1 messages and
capability-key rooms with client-side fan-out over the Transport trait.
There is no chat service and no server-side history. Every message this engine
sends or accepts is written to the local encrypted journal from
nysiris-chat-history.
Part of the Nysiris-Core workspace.
Install
[]
= "0.1"
= "0.1"
= "0.1"
Add nysiris-transport-nym with features = ["nym"] for a real transport, or
nysiris-testkit for tests.
What you get
ChatEngine— contacts, rooms, sending, receiving, and history queries in one place.send_dmandreceivefor sealed direct messages;receive_anyalso accepts room traffic.create_group,join_group,group_invite,send_group, andreceive_groupfor rooms. Nobody holds an authoritative roster.GroupSendReport— the sealed message plus how many members accepted it and which failed, so a partial fan-out is visible instead of silent.- Duplicate inbound messages are dropped by message id, so replays do not grow the history.
conversations,group_summaries,history_for, andgroup_historyfor UI state.
Example
use Arc;
use ChatEngine;
use History;
use ;
use MemoryTransport;
Room messages are sealed once with the room key and sent to each member individually; rooms are capped at 16 members, and removing a member requires a new room key.
Security
Experimental protocol code, not independently audited. Invite handling, room key rotation, and message replay are the areas to review first. Report vulnerabilities privately through SECURITY.md.
License
Apache-2.0. See LICENSE.