https://github.com/marcelosanto/p2p_chat_egui
Uma aplicação de chat Peer-to-Peer (P2P) com interface gráfica (GUI) desenvolvida em Rust. Este projeto é uma evolução de um sistema de chat via terminal para uma aplicação interativa moderna.
https://github.com/marcelosanto/p2p_chat_egui
eframe egui rust
Last synced: 4 days ago
JSON representation
Uma aplicação de chat Peer-to-Peer (P2P) com interface gráfica (GUI) desenvolvida em Rust. Este projeto é uma evolução de um sistema de chat via terminal para uma aplicação interativa moderna.
- Host: GitHub
- URL: https://github.com/marcelosanto/p2p_chat_egui
- Owner: marcelosanto
- Created: 2026-05-03T01:12:38.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-03T01:14:35.000Z (about 2 months ago)
- Last Synced: 2026-05-03T03:23:47.521Z (about 2 months ago)
- Topics: eframe, egui, rust
- Language: Rust
- Homepage:
- Size: 30.3 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Rust P2P Chat com eframe/egui
Uma aplicação de chat Peer-to-Peer (P2P) com interface gráfica (GUI) desenvolvida em Rust. Este projeto é uma evolução de um sistema de chat via terminal para uma aplicação interativa moderna.
## 🚀 Funcionalidades
- **Interface Gráfica**: Interface intuitiva construída com `eframe` e `egui`.
- **Arquitetura P2P**: Comunicação direta entre nós sem necessidade de um servidor central.
- **Conexão Dinâmica**: Interface para configurar a porta local e conectar-se a endereços IP remotos em tempo real.
- **Async-ready**: Processamento de rede em threads separadas usando canais (`mpsc`) para garantir que a interface nunca bloqueie.
- **Protocolo JSON**: Troca de dados estruturada com `serde`.
## 🛠️ Como Executar
### Pré-requisitos
Certifica-te de que tens o Rust instalado ([rustup.rs](https://rustup.rs/)).
### Instalação e Execução
1. Clona este repositório ou copia os ficheiros.
2. No terminal, executa:
```bash
cargo run
```
### Como testar (Localmente)
1. Abre duas instâncias da aplicação.
2. Na **Instância A**: Define "Minha Porta" como `8080` e clica em **Iniciar Servidor**.
3. Na **Instância B**: Define "Minha Porta" como `8081` e clica em **Iniciar Servidor**.
4. Na **Instância B**: No campo "Conectar em", digita `127.0.0.1:8080` e clica em **Conectar**.
5. Agora podes trocar mensagens entre as duas janelas!
## 📚 Créditos
A lógica base de rede e a estrutura P2P deste projeto foram inspiradas e adaptadas a partir do tutorial de **Douglas Starnes**.
- **Fonte Original**: [Peer-to-Peer Networking in Rust](https://www.youtube.com/watch?v=C9NC0RTCoT0) (YouTube).
- **Autor Original**: Semicolon.
A implementação atual expande o código original ao remover a dependência de argumentos de linha de comando e adicionar uma interface gráfica funcional com gestão de estado reativo.
## 📄 Licença
Este projeto é distribuído para fins educativos.
```
### O que foi incluído no README:
1. **Título e Descrição**: Explica o que o projeto faz.
2. **Funcionalidades**: Destaca o uso do `eframe` e da rede P2P.
3. **Guia de Teste**: Um passo a passo prático para quem baixar o código saber como conectar dois chats no mesmo PC.
4. **Secção de Créditos**: Menciona explicitamente o autor original e o link do vídeo do YouTube conforme solicitado.
5. **Instruções de Compilação**: O comando padrão `cargo run`.
```