Updated readme.md

This commit is contained in:
Jazz Turner-Baggs 2025-07-22 06:46:15 -07:00
parent 50ecdcd982
commit 79c1e7ae55
No known key found for this signature in database

View File

@ -1,65 +1,19 @@
# Nim Chat POC
# Waku Vibe Template
This is a technical proof of consuming the [chat_proto](https://github.com/waku-org/chat_proto/tree/base_types?tab=readme-ov-file) in nim.
This is a project template for vibe coding with Waku in nim.
The project imports Waku, builds dependencies and links the needed libraries, so you can get to hacking.
## Message Flow
## Getting Started
To establish a secure conversation, Saro and Raya need to:
1. Exchange key material
2. Agree on a secret key, and location to communicate
After cloning the repo, initialize the Waku side of the project and run the example code.
For this technical proof, recipient identity keys are exchanged out of bound via an invite link. More complex identity systems will be explored in the future.
`nimble initialize` - Sets up the Waku dependencies
`nimble run` - Runs and example of using Waku Filter.
Key derivation and message framing is defined by Inbox spec
## Troubleshooting
If it doesn't work and your error is not listed below, please open an issue or PR.
```mermaid
sequenceDiagram
actor S as Saro
participant SI as Saro Inbox
participant C as Convo
participant RI as Raya Inbox
actor R as Raya
//[Placeholder]
Note over SI,RI: All clients subscribe to their default Inbox
SI ->> S: Subscribe
RI ->> R: Subscribe
Note over R: Key Information is exchanged OOB
Note over S: Conversation is created
C ->> S : Subscribe
S ->> RI : Send Invite `I1`
S ->> C : Send Message `M1`
RI --) R : Recv `I1`
Note over R: Conversation is joined
C ->> R : Subscribe
C --) R: Recv `M1`
R ->> C: Send M2
C -->> S: Recv M2
```
## Running
```
# Run the default binary
nimble run
```
## Limitations
1. `.proto` files are included in this repo due to complications in importing nested packages using `?subdir=`. Once resolved there will be a single definition of protocol types.
1. Currently messages are not sent over the wire. They are simulated using a `TransportMessage`.
## License
[MIT](https://choosealicense.com/licenses/mit/)