# 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.