logos-chat/DEVELOPING.md
Jazz Turner-Baggs 79a5a329c4
Rename Prep (#63)
* Remove Nim-Chat-POC references

* Update nimble file.

* Remove references to ChatSDK as a product
2026-02-18 22:20:16 +01:00

53 lines
1.5 KiB
Markdown

# Developer Guide
## Repository Map
```mermaid
flowchart TD
NIM("<a href="https://github.com/logos-messaging/logos-chat"><b>Logos-Chat</b><br>c-bingings, process control, networking</a>")
LIB("<a href="https://github.com/logos-messaging/libchat"><b>libchat</b><br>encryption, encoding</a>")
PROTO("<a href="https://github.com/logos-messaging/chat-proto"><b>chat-proto</b><br>protobufs, language specific types</a>")
LMN("<a href="https://github.com/logos-messaging/logos-messaging-nim"><b>logos-messaging-nim</b><br>p2p networking</a>")
NIM --> LIB
NIM --> LMN
LIB --> PROTO
%% Mark External Dependencies
style LMN fill:#fff
```
## Repositories
### logos-chat
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-message-delivery
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.