{"id":14259658,"url":"https://github.com/Atheer2104/chat-grpc","last_synced_at":"2025-08-13T03:32:00.208Z","repository":{"id":252849959,"uuid":"735656960","full_name":"Atheer2104/chat-grpc","owner":"Atheer2104","description":"Real-time Chat Microservice built in Rust using gRPC","archived":false,"fork":false,"pushed_at":"2024-08-13T18:25:09.000Z","size":8410,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-14T16:34:07.672Z","etag":null,"topics":["grpc","postgresql","ratatui","redis","rust","tokio","tonic"],"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/Atheer2104.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":"2023-12-25T17:53:23.000Z","updated_at":"2024-11-21T14:22:57.000Z","dependencies_parsed_at":"2024-08-22T10:07:11.682Z","dependency_job_id":"468f9cf4-944d-4bbd-a3cc-74be67f3f5b2","html_url":"https://github.com/Atheer2104/chat-grpc","commit_stats":null,"previous_names":["atheer2104/chat-grpc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Atheer2104/chat-grpc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atheer2104%2Fchat-grpc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atheer2104%2Fchat-grpc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atheer2104%2Fchat-grpc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atheer2104%2Fchat-grpc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Atheer2104","download_url":"https://codeload.github.com/Atheer2104/chat-grpc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atheer2104%2Fchat-grpc/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270175775,"owners_count":24540081,"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","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"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":["grpc","postgresql","ratatui","redis","rust","tokio","tonic"],"created_at":"2024-08-22T10:02:51.888Z","updated_at":"2025-08-13T03:31:59.065Z","avatar_url":"https://github.com/Atheer2104.png","language":"Rust","funding_links":[],"categories":["💻 Apps"],"sub_categories":["🤡 Social Media"],"readme":"# Chat gRPC\n\n**Chat gRPC** is a real-time chat service built entirely in Rust using gRPC (Google Remote Procedure Call). It follows a microservice architecture with two main components:  \n\n- **Auth Service**: Handles user authentication and registration.\n\n- **Chat Service**: Manages message broadcasting to all connected clients.\n\nThe project is fully asynchronous, ensuring high performance and responsiveness. A Terminal User Interface (TUI) is provided to interact with the service.\n\n## Video Showcase \n\n![grab-landing-page](video-showcase.gif)\n\n# Installation\n## Requirements \n- make sure that you have [docker](https://www.docker.com) installed\n- make sure that you have [rust](https://www.rust-lang.org/tools/install) installed\n- install [bunyan](https://github.com/trentm/node-bunyan) as below (this requires [node](https://nodejs.org/en/download/package-manager) to be installed first)\n```sh\nnpm install -g bunyan\n```\n\n## Set up repo\n\n* Clone the repo with \n```sh\ngit clone git@github.com:Atheer2104/chat-grpc.git\n```\n\n* change the directory with \n```sh\ncd chat-grpc\n```\n\nNow we will create PostgreSQL and Redis containers using docker, these containers can be stopped and restarted from the docker desktop for further usage.\n\n*  initialize PostgreSQL with \n```sh\nauth/scripts/init_db.sh \n```\n* Initialize Redis with \n```sh\nauth/scripts/init_redis.sh \n```\n\n# Usage \n\n* Create a separate terminal window and navigate to `cd chat-grpc/auth` and run the auth service with \n```sh\ncargo run --release --bin auth-server | bunyan\n```\n\n- create a separate terminal window and navigate to `cd chat-grpc/chat` and run chat service with \n```sh\ncargo run --release --bin chat-server | bunyan\n```\n\nNow you can start one or more clients by having a separate terminal window for each client navigating to `cd chat-grpc/client` and starting the client with \n```bash\ncargo run --release --bin chat-client\n```\n\n# Technology\n\nMain Technologies used\n\n- [JWT](https://jwt.io) - Used to serve as an access token allowing users to be able to chat\n- [PostgreSQL](https://www.postgresql.org) - Used to save user credentials and JWT access token\n- [Redis](https://redis.io) - Used to cache JWT auth token\n- [Tonic](https://docs.rs/tonic/latest/tonic/) - A rust gRPC library, Used to implement the gRPC functionality\n- [Tokio](https://tokio.rs) - A rust Asynchronous runtime, Used to schedule and spawn asynchronous tasks\n- [Tracing](https://github.com/tokio-rs/tracing) - Used to write logs asynchronously\n- [Ratatui](https://ratatui.rs) -  Used to create Terminal User Interfac\n\n# License \n\nThe project is licensed under the **MIT license**\n\nSee [LICENSE](LICENSE) for more information.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAtheer2104%2Fchat-grpc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAtheer2104%2Fchat-grpc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAtheer2104%2Fchat-grpc/lists"}