ventana 0.0.1

A cross-platform, iterator-based windowing library
Documentation

Ventana

Crates.io Version ko-fi

use ventana::prelude::*;

let window = Window::new(WindowOptions {
  title: "Example",
  size: Size::Logical((800, 500).into()),
  ..Default::default()
})?;

for event in &window {
  println!("{event:?}");
}

An iterator-based windowing library built in Rust

The two key features for this library are the iterator API and backend extensibility. As there are many different platforms, each with their own unique windowing APIs, Ventana is designed such that users may implement their own backends to replace the ones built into the core library.

Please note, as I am only one person working on this in his free time, Ventana is likely hilariously unoptimized in certain places. Certain performance liberties are taken in the name of maintainability and ease-of-use, but I am completely open to feedback concerning particularly problematic code.

Credits

Ventana stands upon the shoulders of giants. It takes heavy inspiration from works such as Piston and Winit; in some cases it directly incorporates code from them. In such instances, I have tried to take care to document what was taken alongside the licenses, but please file an issue if I have missed anything. I try to take plagiarism seriously, but a lot of this was written at 3am after my 10th cup of coffee.


[!NOTE] No AI-generated code.