{"id":16538045,"url":"https://github.com/pablolec/sb_websocket_rust","last_synced_at":"2026-06-08T15:32:41.183Z","repository":{"id":212134267,"uuid":"730794911","full_name":"PabloLec/sb_websocket_rust","owner":"PabloLec","description":"WebSocket TUI chat server and client in Rust","archived":false,"fork":false,"pushed_at":"2023-12-23T16:28:36.000Z","size":77,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-03T21:15:03.871Z","etag":null,"topics":["console","console-application","cui","ratatui","ratatui-rs","rust","rust-lang","tui","tui-rs","websocket","websocket-chat","websocket-client","websocket-server","websockets"],"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/PabloLec.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}},"created_at":"2023-12-12T17:30:00.000Z","updated_at":"2024-06-27T20:27:04.000Z","dependencies_parsed_at":"2023-12-23T16:12:46.772Z","dependency_job_id":"8e413f80-6be1-4cdd-9dbe-d78f8db1431c","html_url":"https://github.com/PabloLec/sb_websocket_rust","commit_stats":{"total_commits":13,"total_committers":1,"mean_commits":13.0,"dds":0.0,"last_synced_commit":"08d84b54c8eb9867e123618b4fa641c34303ca6c"},"previous_names":["pablolec/sb_websocket_rust"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PabloLec/sb_websocket_rust","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PabloLec%2Fsb_websocket_rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PabloLec%2Fsb_websocket_rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PabloLec%2Fsb_websocket_rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PabloLec%2Fsb_websocket_rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PabloLec","download_url":"https://codeload.github.com/PabloLec/sb_websocket_rust/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PabloLec%2Fsb_websocket_rust/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34069490,"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-08T02:00:07.615Z","response_time":111,"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":["console","console-application","cui","ratatui","ratatui-rs","rust","rust-lang","tui","tui-rs","websocket","websocket-chat","websocket-client","websocket-server","websockets"],"created_at":"2024-10-11T18:44:18.018Z","updated_at":"2026-06-08T15:32:41.163Z","avatar_url":"https://github.com/PabloLec.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sb_websocket_rust\n\n## Overview\nThis project is a console-based chat interface that relies on WebSocket communication. \nOne instance acts as a server if no existing server is found, while the other takes on the role of a client. \nThe UI is created using [Ratatui](https://github.com/ratatui-org/ratatui).\n\n## Demo\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/demo.gif\" alt=\"Demo\"\u003e\n\u003c/p\u003e\n\n## Instructions to Run\n- Run two separate instances of the application using:\n```\ndocker run -it --network host pablolec/sb_websocket_rust:latest\n```\n- Once both instances are up and connected, type your message, press \u003ckbd\u003eEnter\u003c/kbd\u003e to send, and \u003ckbd\u003eEsc\u003c/kbd\u003e to exit the application.\n\n## Enhancements\n- The WebSocket implementation currently uses only the standard library and thus covers only a small part of [RFC 6455](https://tools.ietf.org/html/rfc6455). For example, there is currently no solution to gracefully shut down the connection.\n- The application currently operates intentionally only on localhost. An area for improvement would be to display an initial screen with the option to select the host and port to connect to.\n- The UI can obviously be improved, for instance, by adding metadata (users, timestamps of messages) or by offering the possibility to scroll through messages.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpablolec%2Fsb_websocket_rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpablolec%2Fsb_websocket_rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpablolec%2Fsb_websocket_rust/lists"}