{"id":26756926,"url":"https://github.com/matheus-git/quic-chat","last_synced_at":"2025-03-28T15:21:57.423Z","repository":{"id":284014597,"uuid":"953418867","full_name":"Matheus-git/quic-chat","owner":"Matheus-git","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-23T16:49:35.000Z","size":1,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-23T17:33:25.299Z","etag":null,"topics":["quic","quinn","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Matheus-git.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2025-03-23T10:21:59.000Z","updated_at":"2025-03-23T16:49:39.000Z","dependencies_parsed_at":"2025-03-23T17:44:17.404Z","dependency_job_id":null,"html_url":"https://github.com/Matheus-git/quic-chat","commit_stats":null,"previous_names":["matheus-git/quic-chat"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matheus-git%2Fquic-chat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matheus-git%2Fquic-chat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matheus-git%2Fquic-chat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matheus-git%2Fquic-chat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Matheus-git","download_url":"https://codeload.github.com/Matheus-git/quic-chat/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246049718,"owners_count":20715517,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["quic","quinn","rust"],"created_at":"2025-03-28T15:21:56.143Z","updated_at":"2025-03-28T15:21:57.416Z","avatar_url":"https://github.com/Matheus-git.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QUIC Chat\n\n![rust](https://img.shields.io/badge/Rust-000000?style=for-the-badge\u0026logo=rust\u0026logoColor=white)\n\nA very simple client-server with a connection made using QUIC, using the quinn library.\n\n**This project was developed in just a few hours as part of a training exercise over the weekend.**\n\n## Screenshots\n\n### Server\n![server_screenshot](assets/server_screenshot.png)\n\n### Client\n![client_screenshot](assets/client_screenshot.png)\n\n## Usage\n\n1. Clone the repository:\n    ```\n      git clone https://github.com/Matheus-git/quic-chat.git\n    ```\n2. Navigate to the project directory:\n    ```\n      cd quic-chat\n    ```\n3. Configure client.rs and server.rs with the desired IPs and ports.\n\n4. Generate the certificate ( and private key ) at certs/ .\n    ```\n      cargo run --bin quic-chat\n    ```\n5. Start server:\n    ```\n      cargo run --bin server\n    ```\n\n6. Start client (in another terminal):\n    ```\n      cargo run --bin client\n    ```\n\n### Running the Server and Client on Different Hosts\n\nIf you want to run the server and client on different hosts, you need to ensure that both use the same set of certificates. Follow the steps below:\n\n1. **Certificates**\n   - Both the server and client must use the same certificate pair for the QUIC connection.\n   - The **server** will need both `cert.pem` (certificate) and `cert.key` (private key) to work properly.\n   - The **client** only needs the `cert.pem` (certificate), as it only validates the server's certificate during the connection.\n\n2. **Steps:**\n   - Place the `cert.pem` and `cert.key` files in the server’s directory.\n   - On the client, copy only the `cert.pem` file to the appropriate directory.\n\nMake sure the certificate paths are correctly configured on both sides to ensure a secure connection.\n\n## Contributing\n\nContributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.\n\n## 📝 License\n\nThis project is open-source under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatheus-git%2Fquic-chat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatheus-git%2Fquic-chat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatheus-git%2Fquic-chat/lists"}