VOOZH about

URL: https://www.coursera.org/learn/tui

⇱ TUI from Zero | Coursera


Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.

TUI from Zero

Included with

β€’

Learn more

Ask Coursera

Gain insight into a topic and learn the fundamentals.
Intermediate level

Recommended experience

5 hours to complete
Flexible schedule
Learn at your own pace

Gain insight into a topic and learn the fundamentals.
Intermediate level

Recommended experience

5 hours to complete
Flexible schedule
Learn at your own pace

What you'll learn

  • Build a pure-Rust terminal-UI framework from the cell buffer up, with byte-deterministic snapshot tests in CI.

  • Apply the Elm-style init/update/view shape and composite layout to build production widgets (CpuGrid, ProcessTable, MemoryBar).

  • Create ptop-mini end-to-end β€” a Snapshot-fixture-driven process monitor that swaps to a live /proc reader without changing the view function.

Details to know

Shareable certificate

Add to your LinkedIn profile

Recently updated!

May 2026

Assessments

1 assignment

Taught in English

Build your subject-matter expertise

This course is part of the Rust for Data Engineering Specialization
When you enroll in this course, you'll also be enrolled in this Specialization.
  • Learn new concepts from industry experts
  • Gain a foundational understanding of a subject or tool
  • Develop job-relevant skills with hands-on projects
  • Earn a shareable career certificate

There are 5 modules in this course

TUI from Zero teaches you to build a pure-Rust terminal-UI framework from first principles to a working ptop-mini process monitor. Across five modules, you'll learn the wire format of a terminal β€” cells, ANSI escape sequences, Unicode block elements, and Braille code points β€” and how CellBuffer and DiffRenderer turn those primitives into a zero-allocation steady state. You'll master the Elm-style init/update/view shape, composite layout with Container/Row/Column, the .prs declarative scene format, and probar snapshot testing so every render byte is deterministic in CI.

The capstone is ptop-mini, a Rust process monitor whose production binary swaps a Snapshot fixture for a live /proc reader without changing one line of the view function. Every widget is gated by a YAML contract and a probar snapshot test, so the framework you build is provable, not merely working. You should be comfortable with intermediate Rust β€” ownership and borrowing, traits and generics, Result and the ? operator. No prior terminal-UI experience is required.

Build the rendering core of a Rust TUI from first principles. Learn how a terminal is a 2D grid of cells, how double-width Unicode is kept safe, why ANSI escape sequences are the wire format, and how CellBuffer and the Widget trait give you one paint(rect) method that composes everything else.

What's included

6 videos6 readings

6 videosβ€’Total 10 minutes
  • 1.1.1 The Terminal Is A Gridβ€’2 minutes
  • 1.1.2 Presentar Cellbufferβ€’2 minutes
  • 1.1.3 Diffrenderer Emits Only Changesβ€’2 minutes
  • 1.2.1 The Widget Traitβ€’2 minutes
  • 1.2.2 Container Row Columnβ€’2 minutes
  • 1.2.3 Block And Labelβ€’1 minute
6 readingsβ€’Total 51 minutes
  • About This Courseβ€’10 minutes
  • Key Terms: The Terminal Is a Grid of Cellsβ€’10 minutes
  • ELI5 Pixel Graphicsβ€’1 minute
  • Reflection: The Terminal Is a Grid of Cellsβ€’10 minutes
  • Key Terms: The Widget Trait β€” One Method, paint(rect)β€’10 minutes
  • Reflection: The Widget Trait β€” One Method, paint(rect)β€’10 minutes

Wire user input to state through the Elm Architecture's three pure functions: init, update, and view. Model the counter app as a struct, define Msg as an exhaustive enum, and run crossterm's poll/read loop with raw mode. Map every KeyEvent through a total dispatch function so update never sees noise, and exit cleanly on Esc, Ctrl-C, or q.

What's included

6 videos4 readings

6 videosβ€’Total 9 minutes
  • 2.1.1 Init Update Viewβ€’2 minutes
  • 2.1.2 Counter Appβ€’1 minute
  • 2.1.3 Replay Determinismβ€’1 minute
  • 2.2.1 Crossterm Event Loopβ€’2 minutes
  • 2.2.2 Keyevent To Msgβ€’2 minutes
  • 2.2.3 Ctrl C And Quitβ€’1 minute
4 readingsβ€’Total 40 minutes
  • Key Terms: init / update / view β€” the Elm Shapeβ€’10 minutes
  • Reflection: init / update / view β€” the Elm Shapeβ€’10 minutes
  • Key Terms: crossterm's Event Loopβ€’10 minutes
  • Reflection: crossterm's Event Loopβ€’10 minutes

Compose widgets that do real work β€” Sparklines from eight Unicode block glyphs, BrailleGraphs at 4x resolution, a CpuGrid that wraps one cell per core, a ProcessTable that scrolls, and a MemoryBar that fills. Each widget is one paint(rect) call; together they form a live system-monitor TUI.

What's included

6 videos4 readings

6 videosβ€’Total 10 minutes
  • 3.1.1 Block Glyph Sparklineβ€’2 minutes
  • 3.1.2 Braillegraph Sub Cellβ€’2 minutes
  • 3.1.3 Totality Of Glyphβ€’2 minutes
  • 3.2.1 Cpu Gridβ€’2 minutes
  • 3.2.2 Process Tableβ€’2 minutes
  • 3.2.3 Memory Barβ€’1 minute
4 readingsβ€’Total 40 minutes
  • Key Terms: Sparkline and BrailleGraphβ€’10 minutes
  • Reflection: Sparkline and BrailleGraphβ€’10 minutes
  • Key Terms: CpuGrid, ProcessTable, MemoryBarβ€’10 minutes
  • Reflection: CpuGrid, ProcessTable, MemoryBarβ€’10 minutes

Move from imperative paint calls to declarative scenes. Write .prs files that describe layout, then watch a 200-line recursive-descent compiler reconcile them against your widgets. Lock the look with probar snapshot tests β€” stringified CellBuffers, inline or file-backed goldens, byte-identical between runs, all running in CI without a TTY.

What's included

6 videos4 readings

6 videosβ€’Total 9 minutes
  • 4.1.1 Why Declarative TUIβ€’1 minute
  • 4.1.2 Prs Formatβ€’1 minute
  • 4.1.3 Compile To Widget Treeβ€’1 minute
  • 4.2.1 Snapshot As Stringβ€’2 minutes
  • 4.2.2 Golden Diffβ€’2 minutes
  • 4.2.3 Probar Patternβ€’2 minutes
4 readingsβ€’Total 40 minutes
  • Key Terms: Declarative TUI and the .prs Formatβ€’10 minutes
  • Reflection: YAML Scenes and the .prs Compilerβ€’10 minutes
  • Key Terms: Snapshot Testing with probarβ€’10 minutes
  • Reflection: probar Snapshot Testingβ€’10 minutes

Bring everything together: a deterministic Snapshot fixture feeds a single pure view that composes CpuGrid, Sparkline, MemoryBar, and ProcessTable into one ptop-mini dashboard, then swap the fixture for a /proc reader to run the same view live.

What's included

4 videos6 readings1 assignment

4 videosβ€’Total 9 minutes
  • Snapshot Fixtureβ€’1 minute
  • View Composesβ€’1 minute
  • Live Loop vs CIβ€’2 minutes
  • Demo ptop-miniβ€’4 minutes
6 readingsβ€’Total 60 minutes
  • Key Terms: The ptop-mini Snapshot Fixtureβ€’10 minutes
  • Reflection: The ptop-mini Snapshot Fixtureβ€’10 minutes
  • Key Terms: ptop-mini Demo over /procβ€’10 minutes
  • Reflection: ptop-mini Demo over /procβ€’10 minutes
  • Before You Goβ€’10 minutes
  • Next Stepsβ€’10 minutes
1 assignmentβ€’Total 30 minutes
  • Final Graded Quiz β€” TUI from Zeroβ€’30 minutes

Earn a career certificate

Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.

Instructor

Pragmatic AI Labs
61 Coursesβ€’5,916 learners

Explore more from Software Development

Why people choose Coursera for their career

πŸ‘ Image

Felipe M.

Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
πŸ‘ Image

Jennifer J.

Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
πŸ‘ Image

Larry W.

Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
πŸ‘ Image

Chaitanya A.

"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

Frequently asked questions

To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.

When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.

Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.

Financial aid available,