| Crates.io | germterm |
| lib.rs | germterm |
| version | 0.1.3 |
| created_at | 2026-01-20 22:04:36.779726+00 |
| updated_at | 2026-01-22 13:30:31.824674+00 |
| description | A lightweight high-performance terminal graphics framework! |
| homepage | |
| repository | |
| max_upload_size | |
| id | 2057670 |
| size | 49,579 |
A lightweight, high-performance terminal graphics framework in Rust. It renders in real time and supports drawing with transparency through alpha blending, all through a simple to use API.
char, fg, bg and attributesSee the examples directory for more advanced examples.
use std::io;
use germterm::{
color::Color,
crossterm::event::{Event, KeyCode, KeyEvent},
draw::{draw_text, fill_screen},
engine::{Engine, end_frame, exit_cleanup, init, start_frame},
fps_counter::draw_fps_counter,
input::poll_input,
};
fn main() -> io::Result<()> {
let mut engine: Engine = Engine::new(40, 20).limit_fps(60);
init(&mut engine)?;
'update_loop: loop {
for event in poll_input() {
if let Event::Key(KeyEvent {
code: KeyCode::Char('q'),
..
}) = event
{
break 'update_loop;
}
}
start_frame(&mut engine);
fill_screen(&mut engine, Color::BLACK);
draw_text(&mut engine, 14, 9, "Hello world!");
draw_fps_counter(&mut engine, 0, 0);
end_frame(&mut engine)?;
}
exit_cleanup(&mut engine)?;
Ok(())
}
This project only uses crossterm, bitflags and rand as its dependencies.