A no_std UEFI backend for the Ratatui TUI framework that enables creating rich terminal user interfaces running directly as EFI applications without an operating system.

Stars

159

7-day growth

No data

Forks

0

Open issues

0

License

Apache-2.0

Last updated

2026-07-06

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It bridges Ratatui (a popular Rust TUI library) with the UEFI environment, allowing developers to build interactive, keyboard-driven interfaces for bootloaders, recovery tools, and other pre-OS use cases using a familiar Rust ecosystem.

Who it is for

  • Rust developers exploring UEFI programming
  • Developers of bootloaders or EFI applications
  • System programmers needing pre-OS user interfaces
  • TUI enthusiasts interested in no-OS environments

Use cases

  • Building a custom boot manager like efimux
  • Creating diagnostic or recovery menus that run before the OS loads
  • Developing firmware configuration utilities with a text-based interface
  • Prototyping simple UEFI applications with a familiar TUI paradigm

Strengths

  • Leverages the mature Ratatui framework for widget layout and styling
  • Built on the well-maintained uefi crate for reliable UEFI access
  • Supports both QEMU emulation and real physical hardware
  • Described as 'zero-bloat', implying minimal overhead for UEFI apps

Considerations

  • Requires disabling Secure Boot on the target machine
  • Only runs in UEFI environments (no BIOS or legacy boot)
  • Setup involves manual USB or QEMU configuration steps
  • Limited to the input/output capabilities provided by UEFI firmware

README quick start

Zero-bloat Ratatui in UEFI, no OS

What is it?

This library provides a (no_std) UEFI backend for Ratatui that is based on the uefi crate.

Together with uefi, you can create rich TUI's that run as EFI applications.

Examples

  • efimux is an EFI application for booting other EFI applications, built on ratatuefi.

Also check examples/.

Running in QEMU

  1. Install packages:

    pacman -S qemu-system-x86_64 edk2-ovmf
    

    (optionally, install some graphics backend (recommend sdl+opengl), but you can also VNC into the VM)

    pacman -S qemu-ui-sdl qemu-ui-opengl
    
  2. Create virtual EFI layout

    just create-virtual-uefi-layout
    

    then build and symlink the .efi in:
    (`` is something like ./target/x86_64-unknown-uefi/debug/.efi)

    ln -sf  esp/efi/boot/bootx64.efi
    
  3. Start QEMU

    just qemu
    

Running on a physical machine

from

Connect a USB drive. Follow steps below.

# Create the GPT, create a 9MB partition starting at 1MB, and set the
# partition type to EFI System.
sgdisk \
    --clear \
    --new=1:1M:10M \
    --typecode=1:C12A7328-F81F-11D2-BA4B-00A0C93EC93B \
    /path/to/disk

# Format the partition as FAT.
mkfs.fat /path/to/disk_partition

# Mount the partition.
mount --mkdir /path/to/disk_partition /mnt/ratatuefi

# Copy in the boot executable.
cp -rL esp/efi /mnt/ratatuefi/

# Eject the USB drive
eject /path/to/disk

[!IMPORTANT] disable secure boot on machine before trying to boot

Now try booting the USB drive!

Description

Zero-bloat Ratatui in UEFI, no OS

Related repositories

Similar projects matched by category, topics, and programming language.

l0ng-ai
Featured
l0ng-ai GitHub avatar

tty7

tty7 is a fast, GPU-accelerated terminal workbench with persistent sessions, built-in input tools, SSH support, and coding agent awareness.

Developer ToolsCLI & Terminal
359
steelbrain
Featured
steelbrain GitHub avatar

reims-vgpu

reims-vgpu is an experimental virtual GPU for macOS guests that uses QEMU to decode the guest's GPU command stream and execute it through Metal or Vulkan, leveraging the built-in AppleParavirtGPU driver without requiring custom kexts.

Desktop Apps
143
m-novotny
Featured
m-novotny GitHub avatar

memguard-rs

A Rust library that provides secure memory handling primitives including zeroization on drop, memory locking, constant-time comparison, and compile-time guarded regions, with zero dependencies and no_std support.

Embedded & IoTSecurity
131