simpleterm is a bespoke fake terminal written in pure Rust. It lets you create a window with specified size, font, and colors, then display text in that window and get input from the user.

Each call to the terminal returns execution once some condition is met, so you can easily write a complex script of interactions with the user. The terminal functions even include methods to update the terminal’s size, colors, and font on the fly!

I told you to expect more Rust here, not a month later and I’ve got a second public crate! I started this almost immediately after finishing intfic after growing frustrated with the lacking support for terminal colors on windows. By displaying my story in a custom window, I could ensure that it looked relatively the same across all operating systems.

So, in the interest of modularity I set out to make a fake terminal that did a few things very well, and I think I succeeded with those goals in simpleterm! I used piston_window as the backend and did run into some trouble with the way they process fonts and characters. For example, trying to load two sets of glyphs will crash the program unless you reload them right before use! I ended up only loading one at a time, an adding some code to toggle whether the terminal is in “text” mode or “art” mode.

Now that simpleterm is done, I’ll be looking to incorporate it with intfic to create intfic_window, so stay tuned!