Skip to main content


A simple 2D game framework written in Rust.

Example Code

use tetra::graphics::{self, Color};
use tetra::{Context, ContextBuilder, State};

struct GameState;

impl State for GameState {
fn draw(&mut self, ctx: &mut Context) -> tetra::Result {
// Cornflower blue, as is tradition
graphics::clear(ctx, Color::rgb(0.392, 0.584, 0.929));

fn main() -> tetra::Result {
ContextBuilder::new("Hello, world!", 1280, 720)
.run(|_| Ok(GameState))


tetra = "0.7"


  • XNA/MonoGame-inspired API
  • Efficient 2D rendering, with draw call batching by default
  • Easy input handling, via polling or events, with support for gamepads
  • Deterministic game loop by default, à la Fix Your Timestep
  • Common building blocks built-in, such as:
    • Font rendering
    • Cameras
    • Screen scaling