Popularity
8.4
Growing
Activity
9.9
-
3,224
24
102

Description

A hardware-accelerated GPU terminal emulator powered by WebGPU, focusing to run in desktops and browsers. Rio is built over WebGPU, WebAssembly and Rust. The WebGPU API makes it suitable for general purpose graphics and compute on the GPU.

Applications using WPGU run natively on Vulkan, Metal, DirectX 11/12, and OpenGL ES; and browsers via WebAssembly on WebGPU and WebGL2.

Programming language: Rust
License: MIT License

Rio term alternatives and similar packages

Based on the "Graphics" category.
Alternatively, view Rio alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Rio term or a related project?

Add another 'Graphics' Package

README

Rio: โšก terminal app

Website: https://raphamorim.io/rio

This project depends of donations, so if you are using or want to help in any way please consider to donate via Github Sponsors.

  • Cross-platform
  • Offloads rendering to the GPU for lower system load
  • Uses threaded rendering for absolutely minimal latency
Status

Basic features are under development for MacOs right now.

Platform Development Status
MacOs In development
Linux Not started yet
Windows Not started yet

Last testing build for macOS (c603bdcffb6c23a137cb491a505dd23e5f6329c5):

[Demo macOS](docs/demo-macos.png)

WPGU based

WPGU is an implementation of WebGPU for use outside of a browser and as backend for firefox's WebGPU implementation. WebGPU allows for more efficient usage of modern GPU's than WebGL. More info

Low CPU and memory usage

You want to avoid a browser-based application to reduce memory and CPU consumption. Electron for example, uses Chromium under the hood so your user sees the same on Windows, Linux and macOS but Rio have same compatibility rendering based on WGPU.

Rio also relies on Rust memory behavior: Rust is a memory-safe language that employs a compiler to track the ownership of values that can be used once and a borrow checker that manages how data is used without relying on traditional garbage collection techniques. More info

Configuration

The configuration should be the following paths otherwise Rio will use the default configuration.

  • macOs path: ~/.rio/config.toml
config.toml
# Rio configuration file

# <perfomance> Set WGPU rendering perfomance
# default: high
# options: high, average, low
perfomance = "high"

# <height> Set default height
# default: 400
height = 400

# <width> Set default width
# default: 600
width = 600

## TODO: Add more configs

TODO

  • [x] pty
  • [ ] pty open
  • [ ] Render PTY COLS and ROWS based on window size
    • [ ] Tests with VIM
  • [ ] Add scroll to text
  • [x] WGPU rendering
    • [ ] Render font with custom color, size and family
    • [ ] Fix topbar when resize
    • [ ] Keep rendering with intervals
  • [ ] Read and use configuration
  • [ ] Keyboard input
    • [ ] Alphabet keys (uppercase/lowcase)
    • [x] Numbers keys
    • [ ] Control keys
  • [x] Window resizing
  • [ ] Allow use set different font-size
  • [ ] Themes support
  • [ ] Style rendering (italic, bold, underline)
  • [ ] Character set

Credits