Skip to content

Commit b209dd6

Browse files
joshkahawkw
authored andcommitted
feat(console): migrate to ratatui and update crossterm (#425)
See https://github.com/tui-rs-revival/ratatui/wiki/Migrating-from-TUI
1 parent 02cf8a6 commit b209dd6

21 files changed

+96
-150
lines changed

Cargo.lock

+28-84
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tokio-console/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,13 @@ clap = { version = "3", features = ["cargo", "derive", "env"] }
3333
tokio = { version = "1", features = ["full", "rt-multi-thread"] }
3434
tonic = { version = "0.9", features = ["transport"] }
3535
futures = "0.3"
36-
tui = { version = "0.16.0", default-features = false, features = ["crossterm"] }
36+
ratatui = { version = "0.20.1", default-features = false, features = ["crossterm"] }
3737
tower = "0.4.12"
3838
tracing = "0.1"
3939
tracing-subscriber = { version = "0.3.0", features = ["env-filter"] }
4040
tracing-journald = { version = "0.2", optional = true }
4141
prost-types = "0.11"
42-
crossterm = { version = "0.20", features = ["event-stream"] }
42+
crossterm = { version = "0.26.1", features = ["event-stream"] }
4343
color-eyre = { version = "0.6", features = ["issue-url"] }
4444
hdrhistogram = { version = "7.3.0", default-features = false, features = ["serialization"] }
4545
h2 = "0.3"

tokio-console/src/conn.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,8 @@ impl Connection {
183183
}
184184
}
185185

186-
pub fn render(&self, styles: &crate::view::Styles) -> tui::text::Spans {
187-
use tui::{
186+
pub fn render(&self, styles: &crate::view::Styles) -> ratatui::text::Spans {
187+
use ratatui::{
188188
style::{Color, Modifier},
189189
text::{Span, Spans},
190190
};

tokio-console/src/input.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// TODO(eliza): support TUI backends other than crossterm?
1+
// TODO(eliza): support Ratatui backends other than crossterm?
22
// This would probably involve using `spawn_blocking` to drive their blocking
33
// input-handling mechanisms in the background...
44
pub use crossterm::event::*;
@@ -13,10 +13,12 @@ pub fn should_quit(input: &Event) -> bool {
1313
Key(KeyEvent {
1414
code: Char('c'),
1515
modifiers,
16+
..
1617
})
1718
| Key(KeyEvent {
1819
code: Char('d'),
1920
modifiers,
21+
..
2022
}) if modifiers.contains(KeyModifiers::CONTROL) => true,
2123
_ => false,
2224
}

tokio-console/src/main.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ use console_api::tasks::TaskDetails;
33
use state::State;
44

55
use futures::stream::StreamExt;
6-
use tokio::sync::{mpsc, watch};
7-
use tui::{
6+
use ratatui::{
87
layout::{Constraint, Direction, Layout},
98
style::Color,
109
text::{Span, Spans},
1110
widgets::{Paragraph, Wrap},
1211
};
12+
use tokio::sync::{mpsc, watch};
1313

1414
use crate::view::{bold, UpdateKind};
1515

tokio-console/src/state/async_ops.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ use crate::{
1010
view,
1111
};
1212
use console_api as proto;
13+
use ratatui::text::Span;
1314
use std::{
1415
cell::RefCell,
1516
collections::HashMap,
1617
convert::{TryFrom, TryInto},
1718
rc::{Rc, Weak},
1819
time::{Duration, SystemTime},
1920
};
20-
use tui::text::Span;
2121

2222
#[derive(Default, Debug)]
2323
pub(crate) struct AsyncOpsState {

tokio-console/src/state/mod.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ use crate::{
55
warnings::Linter,
66
};
77
use console_api as proto;
8+
use ratatui::{
9+
style::{Color, Modifier},
10+
text::Span,
11+
};
812
use std::{
913
cell::RefCell,
1014
cmp::Ordering,
@@ -15,10 +19,6 @@ use std::{
1519
time::{Duration, SystemTime},
1620
};
1721
use tasks::{Details, Task, TasksState};
18-
use tui::{
19-
style::{Color, Modifier},
20-
text::Span,
21-
};
2222

2323
pub mod async_ops;
2424
pub mod histogram;

tokio-console/src/state/resources.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ use crate::state::{
66
};
77
use crate::view;
88
use console_api as proto;
9+
use ratatui::{style::Color, text::Span};
910
use std::{
1011
collections::HashMap,
1112
convert::{TryFrom, TryInto},
1213
rc::Rc,
1314
time::{Duration, SystemTime},
1415
};
15-
use tui::{style::Color, text::Span};
1616

1717
#[derive(Default, Debug)]
1818
pub(crate) struct ResourcesState {

tokio-console/src/state/tasks.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@ use crate::{
1212
warnings::Linter,
1313
};
1414
use console_api as proto;
15+
use ratatui::{style::Color, text::Span};
1516
use std::{
1617
cell::RefCell,
1718
collections::HashMap,
1819
convert::{TryFrom, TryInto},
1920
rc::{Rc, Weak},
2021
time::{Duration, SystemTime},
2122
};
22-
use tui::{style::Color, text::Span};
2323

2424
#[derive(Default, Debug)]
2525
pub(crate) struct TasksState {

tokio-console/src/term.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
pub use color_eyre::eyre::WrapErr;
2+
pub use ratatui::{backend::CrosstermBackend, Terminal};
23
use std::io;
3-
pub use tui::{backend::CrosstermBackend, Terminal};
44

55
pub fn init_crossterm() -> color_eyre::Result<(Terminal<CrosstermBackend<io::Stdout>>, OnShutdown)>
66
{

tokio-console/src/view/async_ops.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use crate::{
1111
},
1212
};
1313

14-
use tui::{
14+
use ratatui::{
1515
layout,
1616
style::{self, Color, Style},
1717
text::Spans,
@@ -55,10 +55,10 @@ impl TableList<9> for AsyncOpsTable {
5555
Self::HEADER[8].len() + 1,
5656
];
5757

58-
fn render<B: tui::backend::Backend>(
58+
fn render<B: ratatui::backend::Backend>(
5959
table_list_state: &mut TableListState<Self, 9>,
6060
styles: &view::Styles,
61-
frame: &mut tui::terminal::Frame<B>,
61+
frame: &mut ratatui::terminal::Frame<B>,
6262
area: layout::Rect,
6363
state: &mut State,
6464
ctx: Self::Context,

0 commit comments

Comments
 (0)