diff --git a/DEVELOPING.md b/DEVELOPING.md new file mode 100644 index 0000000..32fe621 --- /dev/null +++ b/DEVELOPING.md @@ -0,0 +1,53 @@ +# Developer Guide + + +## Repository Map +```mermaid +flowchart TD + + NIM("nim-chat-poc
c-bingings, process control, networking
") + LIB("libchat
encryption, encoding
") + PROTO("chat_proto
protobufs, language specific types
") + LMN("logos-messaging-nim
p2p networking
") + + + NIM --> LIB + NIM --> LMN + LIB --> PROTO + +%% Mark External Dependencies +style LMN fill:#fff + +``` + +## Repositories + +### nim-chat-poc +Root of the Logos chat SDK, written in Nim. + +Handles async operations and bridges network operations with the cryptographic backend. + +**Responsibilities:** +- C bindings to libchat +- Async execution (Chronos) +- Network integration + +### libchat +Cryptographic logic implementation in Rust. + +Operates as a pipeline: accepts either encrypted payloads or plaintext content, returns the other. Encrypted payloads can be sent directly to network clients; decrypted content goes to applications. + +**Responsibilities:** +- Cryptographic implementations +- Encoding/decoding + + +### logos-messaging-nim +P2P networking layer using logos-messaging protocol. + +Provides decentralized message transport. This is an external dependency. + +### chat_proto +Protobuf definitions. + +Defines the protobufs used in the logos-chat protocol and provides generated types for various languages. \ No newline at end of file