Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Rust
  3. iocraft

iocraft

Apache-2.0Rustiocraft-v0.8.5

A Rust crate for building beautiful, declarative terminal user interfaces (TUIs), CLIs, and text-based IO with React-like syntax.

Visit WebsiteGitHubGitHub
1.5k stars60 forks0 contributors

What is iocraft?

iocraft is a Rust crate for building beautiful terminal user interfaces (TUIs), command-line interfaces (CLIs), and text-based IO. It provides a declarative, React-like API that allows developers to create complex layouts, interactive elements, and fullscreen terminal applications with ease. The library solves the problem of building maintainable and visually appealing text-based interfaces in Rust.

Target Audience

Rust developers building terminal applications, CLI tools, or text-based interfaces who want a modern, declarative approach to UI development. It's particularly useful for those familiar with React or SwiftUI looking for similar ergonomics in Rust.

Value Proposition

Developers choose iocraft for its clean, highly readable syntax and powerful features like flexbox layouts, hooks, and custom components. Unlike more imperative TUI libraries, it offers a declarative paradigm that reduces boilerplate and improves maintainability while supporting both interactive and static terminal output.

Overview

A Rust crate for beautiful, artisanally crafted CLIs, TUIs, and text-based IO.

Use Cases

Best For

  • Building fullscreen terminal applications with complex layouts
  • Creating interactive CLI tools with dynamic UI elements
  • Developing text-based dashboards or monitoring interfaces
  • Crafting beautifully formatted log output or reports
  • Implementing forms or data entry interfaces in the terminal
  • Prototyping terminal-based UIs quickly with a familiar syntax

Not Ideal For

  • Projects demanding minimal binary size or zero dependencies, as iocraft pulls in taffy and may require an async runtime like smol.
  • Real-time terminal applications where sub-millisecond update latency is critical, due to overhead from declarative rendering and hooks.
  • Teams unfamiliar with Rust's macro system or declarative UI patterns, given the heavy use of proc-macros and React-like concepts.

Pros & Cons

Pros

Declarative Syntax

Uses an element! macro inspired by React/SwiftUI, making UI code highly readable and reducing boilerplate, as shown in the clean hello-world example.

Flexbox Layouts

Integrates the taffy crate for CSS-like flexbox layouts, enabling complex and responsive UI designs such as tables and forms demonstrated in the examples.

Cross-Platform Support

Ensures consistent terminal output on both Unix and Windows systems, handling color and styling differences automatically per the README's broad support claim.

Interactive Hooks

Supports dynamic behavior with hooks like use_state and use_future, allowing for state management and async operations, as seen in the counter example with animated updates.

Cons

Async Runtime Lock-in

Core functionality and examples depend on the smol async runtime, which may not align with projects using tokio or preferring synchronous code, adding unnecessary complexity.

Early-Stage Ecosystem

Compared to mature alternatives like Ratatui, iocraft has fewer community resources, pre-built components, and may have less stable APIs, as hinted by its inspiration shoutouts.

Macro Complexity

Heavy reliance on procedural macros for element! and #[component] syntax can obscure compile errors and increase learning curve, especially for Rust beginners.

Frequently Asked Questions

Quick Stats

Stars1,514
Forks60
Contributors0
Open Issues21
Last commit2 days ago
CreatedSince 2024

Tags

#logs#terminal#tui#declarative-ui#terminal-ui#cli#flexbox-layout#interactive-cli#cross-platform#rust-crate#rust

Built With

R
Rust
t
taffy

Links & Resources

Website

Included in

Rust56.6k
Auto-fetched 1 day ago

Related Projects

ratatui-org/ratatuiratatui-org/ratatui

A Rust crate for cooking up terminal user interfaces (TUIs) 👨‍🍳🐀 https://ratatui.rs

Stars22,292
Forks746
Last commit2 days ago
clap-rsclap-rs

A full featured, fast Command Line Argument Parser for Rust

Stars16,648
Forks1,235
Last commit1 day ago
indicatifindicatif

A command line progress reporting library for Rust

Stars5,202
Forks285
Last commit7 days ago
CursiveCursive

A Text User Interface library for the Rust programming language

Stars4,839
Forks267
Last commit20 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub