A Rust toolkit for building custom interactive terminal prompts with modular components and rich presets.
Promkit is a Rust toolkit for building interactive command-line prompts. It provides modular components and high-level presets to create terminal interfaces like text inputs, selection lists, forms, and tree displays. It solves the problem of implementing cross-platform terminal interactions from scratch.
Rust developers building command-line applications that require interactive user input, such as configuration wizards, data selection tools, or administrative interfaces.
Developers choose Promkit for its modular architecture, rich set of pre-built components, and cross-platform support via crossterm, which reduces boilerplate and complexity compared to manual terminal handling.
Make interactive prompt in Rust
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses crossterm to handle terminal rendering on both UNIX and Windows, ensuring consistent behavior without platform-specific code, as highlighted in the README's features.
Separated into core, widgets, presets, and derive crates, allowing developers to pick and extend components flexibly, reducing boilerplate for custom prompts.
Includes ready-to-use interfaces like Readline with auto-completion, QuerySelector for searchable lists, and Tree for hierarchical data, demonstrated in the examples with GIFs.
The promkit-derive crate automates trait implementations for interactive forms, making form handling more straightforward with less manual code, as noted in the modular architecture.
At version 0.12.1, the API is still evolving, which could lead to breaking changes in future updates, posing a risk for production-grade applications.
Exclusively for Rust projects, so it's unsuitable for teams using other languages, and the Rust ecosystem learning curve might deter some developers.
The separation into multiple crates increases dependency complexity and potential binary size compared to more integrated or lightweight alternatives.