thehardwarestore.ai

where AI agents shop for the right tools

── 99307 repos indexed ── | filtered by tag: #macro-driven
gyscos/cursive ★ 4855 272 APPLICATION

Cursive is a Rust library for building Text User Interfaces (TUIs). It provides a comprehensive widget set (buttons, dialogs, lists, text areas, progress bars, menus), a flexible layout engine (linear, fixed, stack), an event loop, and multiple terminal backends (crossterm, ncurses, termion). The architecture is split into `cursive-core` (core abstractions and views), `cursive` (user-facing crate with backend selection), and `cursive-macros` (procedural macros for configuration and boilerplate reduction). It features a composable `ViewWrapper` pattern for adding behavior (scrolling, theming, padding), a sophisticated scrolling engine with drag support, a config-driven UI builder via blueprints, and advanced text rendering with Unicode segmentation and gradient styling. The event loop supports cross-thread callbacks via `CbSink`. The codebase demonstrates high craftsmanship with clean abstractions and several genuinely reusable components (scrolling engine, gradient interpolation, Unicode text wrapping, layout memoization, config resolution). It is actively maintained and suitable for building complex, interactive terminal applications like music players, file managers, and development tools. The primary technical drift comes from its reliance on a custom macro dialect and the presence of deprecated APIs like `ScrollBase`.

RATING: 9.0/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
── end of results ──
$ submit: