Skip to main content

Welcome to Ziva

Example TUI

Key Features

Task System

Five task types: YesNo, SingleSelect, MultiSelect, Input, and Func with timeout support

Queue System

Orchestration of task sequences with automatic progress tracking

Validation

Built-in validators for email, IP, domains, passwords, and much more

Localization

Multi-language support: Russian, English, Turkish, Belarusian, Ukrainian

Quick Start

Install the library and start creating TUI applications in minutes:
package main

import (
    "log"
    "github.com/qzeleza/ziva"
)

func main() {
    // Create a task queue
    queue := ziva.NewQueue("My TUI Application")

    // Add confirmation task
    confirm := ziva.NewYesNoTask("Confirmation", "Continue?")

    // Add selection task
    options := []string{"development", "staging", "production"}
    env := ziva.NewSingleSelectTask("Select environment", options)

    // Add tasks to queue and run
    queue.AddTasks(confirm, env)
    if err := queue.Run(); err != nil {
        log.Fatal(err)
    }
}

Optimized for Embedded Systems

Ziva automatically detects and optimizes for embedded systems:
  • Memory Management - load monitoring and string interning
  • Adaptive Color Schemes - simplified colors for limited terminals
  • Auto-configuration - router and IoT device detection with parameter tuning

Get Started

Install Ziva and create your first TUI application

Community and Support

GitHub

Source code, issue tracker, and releases

Go Package

API documentation and usage examples

Examples

Ready-to-run examples for quick start