{"id":50844150,"url":"https://github.com/marcelosanto/p2p_chat_egui","last_synced_at":"2026-06-14T08:05:39.959Z","repository":{"id":355323407,"uuid":"1227650061","full_name":"marcelosanto/p2p_chat_egui","owner":"marcelosanto","description":"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.","archived":false,"fork":false,"pushed_at":"2026-05-03T01:14:35.000Z","size":31,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-03T03:23:47.521Z","etag":null,"topics":["eframe","egui","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marcelosanto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-03T01:12:38.000Z","updated_at":"2026-05-03T01:14:38.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/marcelosanto/p2p_chat_egui","commit_stats":null,"previous_names":["marcelosanto/p2p_chat_egui"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/marcelosanto/p2p_chat_egui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcelosanto%2Fp2p_chat_egui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcelosanto%2Fp2p_chat_egui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcelosanto%2Fp2p_chat_egui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcelosanto%2Fp2p_chat_egui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marcelosanto","download_url":"https://codeload.github.com/marcelosanto/p2p_chat_egui/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcelosanto%2Fp2p_chat_egui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34313633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-14T02:00:07.365Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["eframe","egui","rust"],"created_at":"2026-06-14T08:05:39.010Z","updated_at":"2026-06-14T08:05:39.952Z","avatar_url":"https://github.com/marcelosanto.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rust P2P Chat com eframe/egui\n\nUma 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.\n\n## 🚀 Funcionalidades\n\n- **Interface Gráfica**: Interface intuitiva construída com `eframe` e `egui`.\n- **Arquitetura P2P**: Comunicação direta entre nós sem necessidade de um servidor central.\n- **Conexão Dinâmica**: Interface para configurar a porta local e conectar-se a endereços IP remotos em tempo real.\n- **Async-ready**: Processamento de rede em threads separadas usando canais (`mpsc`) para garantir que a interface nunca bloqueie.\n- **Protocolo JSON**: Troca de dados estruturada com `serde`.\n\n## 🛠️ Como Executar\n\n### Pré-requisitos\nCertifica-te de que tens o Rust instalado ([rustup.rs](https://rustup.rs/)).\n\n### Instalação e Execução\n1. Clona este repositório ou copia os ficheiros.\n2. No terminal, executa:\n\n  ```bash\n   cargo run\n  ```\n\n### Como testar (Localmente)\n\n1.  Abre duas instâncias da aplicação.\n    \n2.  Na **Instância A**: Define \"Minha Porta\" como `8080` e clica em **Iniciar Servidor**.\n    \n3.  Na **Instância B**: Define \"Minha Porta\" como `8081` e clica em **Iniciar Servidor**.\n    \n4.  Na **Instância B**: No campo \"Conectar em\", digita `127.0.0.1:8080` e clica em **Conectar**.\n    \n5.  Agora podes trocar mensagens entre as duas janelas!\n    \n\n## 📚 Créditos\n\nA lógica base de rede e a estrutura P2P deste projeto foram inspiradas e adaptadas a partir do tutorial de **Douglas Starnes**.\n\n-   **Fonte Original**: [Peer-to-Peer Networking in Rust](https://www.youtube.com/watch?v=C9NC0RTCoT0) (YouTube).\n    \n-   **Autor Original**: Semicolon.\n    \n\nA 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.\n\n## 📄 Licença\n\nEste projeto é distribuído para fins educativos.\n\n```\n\n### O que foi incluído no README:\n1.  **Título e Descrição**: Explica o que o projeto faz.\n2.  **Funcionalidades**: Destaca o uso do `eframe` e da rede P2P.\n3.  **Guia de Teste**: Um passo a passo prático para quem baixar o código saber como conectar dois chats no mesmo PC.\n4.  **Secção de Créditos**: Menciona explicitamente o autor original e o link do vídeo do YouTube conforme solicitado.\n5.  **Instruções de Compilação**: O comando padrão `cargo run`.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcelosanto%2Fp2p_chat_egui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcelosanto%2Fp2p_chat_egui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcelosanto%2Fp2p_chat_egui/lists"}