Overview of illwill features and use cases
masterWhat is illwill?
illwill is a lightweight, (n)curses-inspired terminal library written in pure Nim. It is designed for creating cross-platform text-mode applications without external dependencies or a terminfo database.
Key Features
- Non-blocking input: Use
getKey()to poll for keyboard events without halting execution. - Virtual Buffers: Supports double-buffering to minimize terminal updates and CPU usage.
- Graphics: Simple UTF-8 box-drawing symbols for UI elements.
- Input Support: Handles key combinations, special keys, and mouse input with modifier reporting.
- Fullscreen: Full-screen mode with terminal state restoration (Note: restoration may not work on Windows).
When to use it
- You want a simple, dependency-free way to write full-screen terminal apps.
- You are building a custom UI from scratch using an immediate mode approach.
- You only need to support UTF-8 encodings.
When NOT to use it
- You need highly robust support for obscure terminals or character encodings.
- You require a library with predefined widgets (e.g., buttons, sliders).
- You need perfect terminal state restoration on Windows.