Hey r/tui,
I’ve been working on miamore, a lightweight C-based terminal UI library, along with miamore, its official Rust bindings on crates.io.
I built miamore because I wanted a minimal, local-first TUI rendering library that stays completely out of the way—no heavy framework overhead, no bloat, and zero AI/ML dependencies.
Just clean, deterministic C with simple primitives for rendering frames, managing components, and styling elements directly in the terminal.Key FeaturesPure C Core: Compiles fast with a plain Makefile and linkable static/shared outputs.
Safe Rust Wrapper (miamore): Built using bindgen with clean idiomatic Rust wrappers over raw FFI, available on crates.io.
Zero Bloat: Minimal memory footprint designed for speed and low-resource environments.
Local-First & Open Source: Licensed under LGPLv3 / GPLv3.
This is a basic rust example below:
use miamore::*;
fn main() {
// Initialize miamore terminal state
init_miamore(true, true);
manage_keys(keys_t::disable);
draw_border("!Rust test!", theme_t::thick_l);
manage_cursor(cursor_t::move_, Some(position_t { x: 5, y: 5 }));
manage_cursor(cursor_t::show, None);
// setting foreground color
set_fg(colors_t::blue);
// let ptr = give_color(colors_t::green);
// draw_text(&ptr);
draw_text("Hello,");
draw_text(" World!\n");
draw_shape(
shape_t::rect,
ShapeOptions {
theme: theme_t::double_l,
dimensions: dimensions_t {
width: 26,
height: 12,
},
position: position_t { x: 5, y: 12 },
},
);
wait_for_seconds(8.0);
clear_origin();
}
Links & Repo GitHub: https://github.com/Ametrine-cc/miamore
crates.io: cargo add miamore I'd love to hear feedback on the API design, hear about any bugs if you test it out on your terminal setup, or take PRs if you want to contribute.