{"repo":"ccbrown/iocraft","free":true,"listed":false,"github":"https://github.com/ccbrown/iocraft","clone":"git clone https://github.com/ccbrown/iocraft.git","description":"A Rust crate for beautiful, artisanally crafted CLIs, TUIs, and text-based IO.","language":"Rust","stars":1500,"topics":["cli","logs","rust","terminal","tui","iocraft"],"license":"Apache-2.0","category":"cli-tools","readme_excerpt":"iocraft ✨ A Rust crate for beautiful, artisanally crafted CLIs, TUIs, and text-based IO. ✨ iocraft is a library for crafting beautiful text output and interfaces for the terminal or logs. It allows you to easily build complex layouts and interactive elements using a declarative API. Features - Define your UI using a clean, highly readable syntax. - Organize your UI using flexbox layouts powered by taffy . - Output colored and styled UIs to the terminal or ASCII output anywhere else. - Create animated or interactive elements with event handling and hooks. - Build fullscreen terminal applications with ease. - Pass props and context by reference to avoid unnecessary cloning. - Broad support for both Unix and Windows terminals so your UIs look great everywhere. Getting Started If you're familiar with React, you'll feel right at home with iocraft . It uses all the same concepts, but is text-focused and made for Rust. Here's your first iocraft program: Your UI is composed primarily via the element! macro, which allows you to declare your UI elements in a React/SwiftUI-like syntax. iocraft provides a few built-in components, such as View , Text , and TextInput , but you can also create your own using the #[component] macro. For example, here's a custom component that uses a hook to display a counter which increments every 100ms: More Examples There are many examples on GitHub which demonstrate various concepts such as tables, progress bars, fullscreen apps, forms, and more! Shoutout","default_branch":null,"files":null,"tree":[],"storefront":"/r/ccbrown","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ccbrown/iocraft/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}