tui-lipan 0.2.0

Opinionated, component-based TUI framework for Rust - declarative components, reconciliation, layout engine, focus, overlays, and rich widgets on top of ratatui.
Documentation
import socket, sys, time

sock_path, cmds = sys.argv[1], sys.argv[2:]
for _ in range(100):
    try:
        s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
        s.connect(sock_path)
        break
    except (FileNotFoundError, ConnectionRefusedError):
        time.sleep(0.1)
else:
    print("could not connect")
    sys.exit(1)

f = s.makefile("rwb")
for cmd in cmds:
    f.write((cmd + "\n").encode())
    f.flush()
    header = f.readline().decode().strip()
    status, length = header.split(" ", 1)
    payload = f.read(int(length)).decode()
    print(f"--- {cmd!r} -> {status} ({length} bytes)")
    if payload:
        print(payload if len(payload) < 700 else payload[:700] + "\n...[truncated]")