{"id":25268210,"url":"https://github.com/programmaters/shout","last_synced_at":"2026-02-12T15:01:24.043Z","repository":{"id":276790947,"uuid":"930023804","full_name":"Programmaters/shout","owner":"Programmaters","description":"TUI Real-time Messaging App","archived":false,"fork":false,"pushed_at":"2025-02-16T11:32:39.000Z","size":1875,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T04:19:27.084Z","etag":null,"topics":["csharp","docker","golang","kotlin","microservices","mongodb","postgresql","python","redis","rust","tui","typescript"],"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/Programmaters.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-02-09T23:21:53.000Z","updated_at":"2025-02-24T02:40:24.000Z","dependencies_parsed_at":"2025-02-10T13:44:44.600Z","dependency_job_id":null,"html_url":"https://github.com/Programmaters/shout","commit_stats":null,"previous_names":["programmaters/shout"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Programmaters/shout","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Programmaters%2Fshout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Programmaters%2Fshout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Programmaters%2Fshout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Programmaters%2Fshout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Programmaters","download_url":"https://codeload.github.com/Programmaters/shout/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Programmaters%2Fshout/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266076051,"owners_count":23872729,"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":["csharp","docker","golang","kotlin","microservices","mongodb","postgresql","python","redis","rust","tui","typescript"],"created_at":"2025-02-12T10:24:18.219Z","updated_at":"2026-02-12T15:01:24.038Z","avatar_url":"https://github.com/Programmaters.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cpre style=\"overflow-wrap: break-word; white-space: pre-wrap; text-align: center;\"\u003e\n███████╗██╗  ██╗ ██████╗ ██╗   ██╗████████╗\n██╔════╝██║  ██║██╔═══██╗██║   ██║╚══██╔══╝\n███████╗███████║██║   ██║██║   ██║   ██║   \n╚════██║██╔══██║██║   ██║██║   ██║   ██║   \n███████║██║  ██║╚██████╔╝╚██████╔╝   ██║   \n╚══════╝╚═╝  ╚═╝ ╚═════╝  ╚═════╝    ╚═╝   \n\u003c/pre\u003e\n\n**TUI Real-time Messaging App** (In development)\n\n![](https://skillicons.dev/icons?i=rust,go,python,typescript,kotlin,cs,postgresql,mongodb,redis,docker)\n\n\n![Contributors](https://img.shields.io/github/contributors/programmaters/shout)\n![Repo size](https://img.shields.io/github/repo-size/programmaters/shout)\n[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n\n![demo](./demo.gif)\n\n\u003c/div\u003e\n\n---\n\n\n## 🖧 Architecture\n- **Frontend**\n  - TUI application built with **Rust** and **ratatui** for a seamless interactive user experience\n\n- **Backend**\n  - **Microservices**:\n    - **AuthService** (Kotlin): User authentication \u0026 authorization\n    - **UserService** (C#): Handles user profile information\n    - **FriendService** (Python): Deals with friend requests\n    - **ChannelService** (TypeScript): Manages channels\n    - **MessageService** (Go): Provides WebSocket-based messaging for channels and DMs\n    - **PresenceService** (Rust): Tracks user presence and typing indicators using pub/sub\n  - **Storage**:\n    - **PostgreSQL**: Stores relationships and metadata (users, friendships, servers, ...)    \n    - **MongoDB**: For storing messages \n  - **Communication**:\n    - **REST** and **WebSockets** for client API\n    - **gRPC** for communication between microservices\n  - **API Gateway**:\n    - **Traefik** for routing requests across services\n  - **Deployment**:\n    - Fully containerized with **Docker**\n\n\u003cbr\u003e\n\n![](./docs/diagrams/system-diagram.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprogrammaters%2Fshout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprogrammaters%2Fshout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprogrammaters%2Fshout/lists"}