https://github.com/rurumimic/terminal
📈 단말
https://github.com/rurumimic/terminal
blackberry bloomberg cpp market openbb rust terminal webassembly webgl websocket
Last synced: about 1 year ago
JSON representation
📈 단말
- Host: GitHub
- URL: https://github.com/rurumimic/terminal
- Owner: rurumimic
- License: mit
- Created: 2023-02-03T14:17:24.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-08-15T13:09:52.000Z (almost 3 years ago)
- Last Synced: 2025-03-30T22:24:19.920Z (about 1 year ago)
- Topics: blackberry, bloomberg, cpp, market, openbb, rust, terminal, webassembly, webgl, websocket
- Language: JavaScript
- Homepage:
- Size: 1.18 MB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Terminal
## Tech Stack
- WebAssembly
- [empscripten](empscripten/README.md)
- WebSocket
- [WebGL](webgl/README.md)
---
## Architecture
```html
+-----------------+
| API |
| .-------------. |
| | WebSocket | |
| '------+------' |
+--------+--------+
|
Stream
|
v
+-----------------------------------+
| Browser |
| +--------+ +---------+ |
| | WASM +--Process-->| WebGL | |
| +--------+ +---------+ |
+-----------------------------------+
```
### pros and cons
#### advantages
1. Real-time communication
2. Efficient data processing
3. High-performance rendering
4. Scalability
5. Browser compatibility
read more...
1. **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.
2. **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.
3. **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.
4. **Scalability**: This architecture allows the server to handle multiple WebSocket connections concurrently, enabling the system to scale effectively.
5. **Browser compatibility**: Since both WebAssembly and WebGL are supported by modern web browsers, the architecture is compatible across different platforms and devices.
#### disadvantages
1. Limited browser support
2. Complexity
3. Security concerns
4. Potential performance bottlenecks
5. Dependency on JavaScript
read more...
1. **Limited browser support**: Older browsers may not support WebSocket, WebAssembly, or WebGL, which could limit the reach of the application.
2. **Complexity**: The architecture might be more complex compared to a traditional RESTful API, increasing the learning curve for developers.
3. **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.
4. **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.
5. **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.
---
## Code
### WebAssembly
#### hello world
- helloworld: [main.c](empscripten/src/helloworld/main.c)
### WebSocket
#### simple server-client
- server: [readme](websocket/src/server/README.md), [src/main.rs](websocket/src/server/src/main.rs)
- client: [readme](websocket/src/client/README.md), [index.js](websocket/src/client/index.js)
### WebGL
- canvas: [readme](webgl/src/canvas/README.md)
- baduk: [readme](webgl/src/baduk/README.md)
---
## Ref
- Start [OpenBB](openbb/README.md)