{"id":19121820,"url":"https://github.com/rurumimic/terminal","last_synced_at":"2025-05-05T16:28:38.232Z","repository":{"id":65675137,"uuid":"597050520","full_name":"rurumimic/terminal","owner":"rurumimic","description":"📈 단말","archived":false,"fork":false,"pushed_at":"2023-08-15T13:09:52.000Z","size":1242,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-30T22:24:19.920Z","etag":null,"topics":["blackberry","bloomberg","cpp","market","openbb","rust","terminal","webassembly","webgl","websocket"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/rurumimic.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}},"created_at":"2023-02-03T14:17:24.000Z","updated_at":"2023-07-31T15:45:49.000Z","dependencies_parsed_at":"2023-02-18T08:45:39.469Z","dependency_job_id":null,"html_url":"https://github.com/rurumimic/terminal","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rurumimic%2Fterminal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rurumimic%2Fterminal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rurumimic%2Fterminal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rurumimic%2Fterminal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rurumimic","download_url":"https://codeload.github.com/rurumimic/terminal/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249593372,"owners_count":21296717,"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":["blackberry","bloomberg","cpp","market","openbb","rust","terminal","webassembly","webgl","websocket"],"created_at":"2024-11-09T05:18:36.553Z","updated_at":"2025-04-19T02:32:34.183Z","avatar_url":"https://github.com/rurumimic.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Terminal\n\n## Tech Stack\n\n- WebAssembly\n  - [empscripten](empscripten/README.md)\n- WebSocket\n- [WebGL](webgl/README.md)\n\n---\n\n## Architecture\n\n```html\n\u003cbody\u003e\n    \u003cscript src=\"https://google.github.io/typograms/typograms.js\"\u003e\u003c/script\u003e\n    \u003cscript type=\"text/typogram\"\u003e\n            +-----------------+\n            |       API       |\n            | .-------------. |\n            | |  WebSocket  | |\n            | '------+------' |\n            +--------+--------+\n                     |\n                   Stream\n                     |\n                     v\n    +-----------------------------------+\n    |             Browser               |\n    | +--------+            +---------+ |\n    | |  WASM  +--Process--\u003e|  WebGL  | |\n    | +--------+            +---------+ |\n    +-----------------------------------+\n    \u003c/script\u003e\n\u003c/body\u003e\n```\n\n### pros and cons\n\n#### advantages\n\n1. Real-time communication\n2. Efficient data processing\n3. High-performance rendering\n4. Scalability\n5. Browser compatibility\n\n\n\u003cdetails\u003e\n  \u003csummary\u003eread more...\u003c/summary\u003e\n  \n1. **Real-time communication**: WebSocket allows for bidirectional communication between the server (API) and the client (Browser), making it suitable for real-time applications and reducing latency.\n2. **Efficient data processing**: WASM is a binary instruction format designed for secure and fast execution, enabling efficient processing of the data received from the WebSocket.\n3. **High-performance rendering**: WebGL is a JavaScript API for rendering interactive 2D and 3D graphics in the browser, allowing for high-performance graphics without the need for plugins.\n4. **Scalability**: This architecture allows the server to handle multiple WebSocket connections concurrently, enabling the system to scale effectively.\n5. **Browser compatibility**: Since both WebAssembly and WebGL are supported by modern web browsers, the architecture is compatible across different platforms and devices.\n\n\u003c/details\u003e\n\n#### disadvantages\n\n1. Limited browser support\n2. Complexity\n3. Security concerns\n4. Potential performance bottlenecks\n5. Dependency on JavaScript\n\n\u003cdetails\u003e\n  \u003csummary\u003eread more...\u003c/summary\u003e\n\n1. **Limited browser support**: Older browsers may not support WebSocket, WebAssembly, or WebGL, which could limit the reach of the application.\n2. **Complexity**: The architecture might be more complex compared to a traditional RESTful API, increasing the learning curve for developers.\n3. **Security concerns**: WebSocket connections might be vulnerable to security threats like cross-site WebSocket hijacking. Also, WebAssembly code execution can expose vulnerabilities that need to be mitigated.\n4. **Potential performance bottlenecks**: While WASM and WebGL are designed for high-performance, some devices might still struggle with the processing and rendering tasks, particularly in resource-intensive applications.\n5. **Dependency on JavaScript**: While WASM is intended to be a low-level virtual machine that runs code at near-native speed, it still relies on JavaScript for various functionalities, such as interacting with the DOM or handling events, which can be a potential bottleneck in some cases.\n\n\u003c/details\u003e\n\n---\n\n## Code\n\n### WebAssembly\n\n#### hello world\n\n- helloworld: [main.c](empscripten/src/helloworld/main.c)\n\n### WebSocket\n\n#### simple server-client\n\n- server: [readme](websocket/src/server/README.md), [src/main.rs](websocket/src/server/src/main.rs)\n- client: [readme](websocket/src/client/README.md), [index.js](websocket/src/client/index.js)\n\n### WebGL\n\n- canvas: [readme](webgl/src/canvas/README.md)\n- baduk: [readme](webgl/src/baduk/README.md)\n\n---\n\n## Ref\n\n- Start [OpenBB](openbb/README.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frurumimic%2Fterminal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frurumimic%2Fterminal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frurumimic%2Fterminal/lists"}