Ratatouille v0.5.1 API Reference


Ratatouille is a framework for building terminal UIs.

Defines the Ratatouille.App behaviour. It provides the structure for architecting both large and small terminal applications. This structure allows you to render views and update them over time or in response to user input.

A convenience wrapper of ExTermbox.Constants.

A wrapper of ExTermbox.EventManager so that Ratatouille applications don't need to use or depend on ex_termbox directly.

Logic to render a view tree.

Functions for working with element attributes

Primitives for rendering borders

This defines the internal representation of a rectangular region---a box---for rendering, as well as logic for transforming these boxes.

A canvas represents a terminal window, a subvision of it for rendering, and a sparse mapping of positions to cells.

Functions for working with canvas cells.

Primitives for rendering lines

Primitives for rendering text

A runtime for apps implementing the Ratatouille.App behaviour. See Ratatouille.App for details on how to build apps.

Commands provide a way to start an expensive call in the background and get the result back via Ratatouille.App.update/2.

Defines a struct to store the runtime loop's state.

Subscriptions provide a way for the app to be notified via Ratatouille.App.update/2 when something interesting happens.

A supervisor to run the application runtime and its dependencies.

In Ratatouille, a view is simply a tree of elements. Each element in the tree holds an attributes map and a list of zero or more child nodes. Visually, it looks like something this

A GenServer to manage the terminal window, along with a client API to perform updates and retrieve window information.