Files
docs/versioned_docs/version-0.2.0/intro/00-introduction.md
T
2026-01-31 20:52:02 +01:00

34 lines
2.5 KiB
Markdown

markdown
---
sidebar_position: 0
title: Introduction
---
# Introduction to OSUI
OSUI is a powerful and flexible Rust library for building advanced Terminal User Interfaces (TUIs). It provides a component-based architecture inspired by modern web frameworks, offering a familiar and ergonomic development experience for crafting interactive command-line applications.
## What is OSUI?
OSUI stands for "Operating System User Interface" in the terminal context. It aims to bridge the gap between simple text-based applications and rich graphical user interfaces by offering a robust framework for complex TUI development.
### Key Features
* **Component System**: Build UIs using reusable, composable components that manage their own state and lifecycle.
* **Reactive State Management**: Leverage React-like hooks (`useState`, `useEffect`) for efficient and predictable state handling.
* **Declarative UI with RSX**: Define your UI structure using an intuitive, macro-based RSX (React-like Syntax) similar to JSX.
* **Event Handling**: A type-safe event system allows components to communicate and respond to user input and internal changes.
* **Pluggable Rendering Engine**: Ships with a `Console` engine for `crossterm`-based terminal rendering, and an extensible `Engine` trait for custom backends.
* **Benchmark Tooling**: Built-in benchmarking capabilities to measure and optimize rendering performance.
## Why OSUI?
Traditional TUI libraries often require imperative manipulation of the terminal buffer, which can become cumbersome for complex applications. OSUI addresses this by:
* **Promoting Modularity**: Components encapsulate UI logic and appearance, making code easier to organize, test, and maintain.
* **Simplifying State Logic**: The hook-based state management system ensures that your UI automatically reacts to data changes, reducing boilerplate and potential bugs.
* **Enhancing Developer Experience**: The `rsx!` macro and `#[component]` attribute provide a declarative way to define your UI, allowing you to focus on *what* your UI should look like, rather than *how* to draw it.
* **Encouraging Scalability**: The clear separation of concerns (components, state, rendering engine) makes OSUI suitable for applications ranging from simple utilities to complex interactive dashboards.
Whether you're building a CLI dashboard, an interactive configuration tool, or a text-based game, OSUI provides the tools to create engaging and performant terminal experiences.