#widgets #tui #ratatui #display #indicator #progress #throbber

throbber-widgets-tui

这是一个显示旋转器的 ratatui 小部件

11 个版本 (6 个破坏性版本)

0.7.0 2024年8月18日
0.6.0 2024年6月29日
0.5.0 2024年3月29日
0.4.1 2024年2月26日
0.1.2 2022年10月12日

#559 in 命令行工具

Download history 256/week @ 2024-04-27 178/week @ 2024-05-04 120/week @ 2024-05-11 403/week @ 2024-05-18 280/week @ 2024-05-25 325/week @ 2024-06-01 164/week @ 2024-06-08 199/week @ 2024-06-15 226/week @ 2024-06-22 430/week @ 2024-06-29 228/week @ 2024-07-06 148/week @ 2024-07-13 257/week @ 2024-07-20 329/week @ 2024-07-27 435/week @ 2024-08-03 646/week @ 2024-08-10

每月1,683次下载
用于 10 个 crate (7 直接)

Zlib 许可证

70KB
379

ratatui 的旋转器小部件

注意:如果您想使用 tui-rs 而不是 ratatui,请使用 0.4.1 或更早版本。

throbber-widgets-tui 是一个显示旋转器的 ratatui 小部件。

旋转器也可以称为

  • 活动指示器
  • 不确定进度条
  • 加载图标
  • 旋转器
  • ぐるぐる(guru guru)

演示

Demo Animation

gif 中显示的演示可以通过所有可用的符号运行。

cargo run --example demo --release

功能

  • 渲染旋转器
  • 带有标签
  • 随机或指定的步骤,也可以是负数。

入门

MSRV: throbber-widgets-tui 需要 rustc 1.74.0 或更高版本。

cargo add throbber-widgets-tui

示例代码

// :
// :
struct App {
    throbber_state: throbber_widgets_tui::ThrobberState,
}
impl App {
    fn on_tick(&mut self) {
        self.throbber_state.calc_next();
    }
}
// :
// :
fn ui(f: &mut ratatui::Frame, app: &mut App) {
    let chunks = ratatui::layout::Layout::default()
        .direction(ratatui::layout::Direction::Horizontal)
        .margin(1)
        .constraints(
            [
                ratatui::layout::Constraint::Percentage(50),
                ratatui::layout::Constraint::Percentage(50),
            ]
            .as_ref(),
        )
        .split(f.area());

    // Simple random step
    let simple = throbber_widgets_tui::Throbber::default();
    f.render_widget(simple, chunks[0]);

    // Set full with state
    let full = throbber_widgets_tui::Throbber::default()
        .label("Running...")
        .style(ratatui::style::Style::default().fg(ratatui::style::Color::Cyan))
        .throbber_style(ratatui::style::Style::default().fg(ratatui::style::Color::Red).add_modifier(ratatui::style::Modifier::BOLD))
        .throbber_set(throbber_widgets_tui::CLOCK)
        .use_type(throbber_widgets_tui::WhichUse::Spin);
    f.render_stateful_widget(full, chunks[1], &mut app.throbber_state);
}

使用 throbber-widgets-tui 的应用程序

  • mntime:执行 "m" 命令 "n" 次以计算使用时间和内存的平均值。作为 "time" 的替代方案,内部使用 "gnu-time"。

依赖关系(默认)

直接依赖的 crate

cargo license --direct-deps-only --avoid-build-deps --avoid-dev-deps | awk -F ":" 'BEGIN {printf "|License|crate|\n|-|-|\n"} {printf "|%s|%s|\n", $1, $2}'
许可证 crate
Apache-2.0 OR MIT (1) rand
MIT (1) ratatui
Zlib (1) throbber-widgets-tui

链式依赖的 crate

cargo license --avoid-build-deps --avoid-dev-deps | awk -F ":" 'BEGIN {printf "|License|crate|\n|-|-|\n"} {printf "|%s|%s|\n", $1, $2}'
许可证 crate
(MIT OR Apache-2.0) AND Unicode-DFS-2016 (1) unicode-ident
Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT (3) linux-raw-sys, rustix, wasi
Apache-2.0 OR BSD-2-Clause OR MIT (2) zerocopy, zerocopy-derive
Apache-2.0 OR BSL-1.0 (1) ryu
Apache-2.0 OR MIT (50) ahash, allocator-api2, bitflags, cassowary, cfg-if, either, errno, getrandom, hashbrown, heck, hermit-abi, itertools, itoa, libc, lock_api, log, once_cell, parking_lot, parking_lot_core, paste, ppv-lite86, proc-macro2, quote, rand, rand_chacha, rand_core, rustversion, scopeguard, signal-hook, signal-hook-mio, signal-hook-registry, smallvec, static_assertions, syn, unicode-segmentation, unicode-truncate, unicode-width, winapi, winapi-i686-pc-windows-gnu, winapi-x86_64-pc-windows-gnu, windows-sys, windows-targets, windows_aarch64_gnullvm, windows_aarch64_msvc, windows_i686_gnu, windows_i686_gnullvm, windows_i686_msvc, windows_x86_64_gnu, windows_x86_64_gnullvm, windows_x86_64_msvc
MIT (11) castaway, compact_str, crossterm, crossterm_winapi, instability, lru, mio, ratatui, redox_syscall, strum, strum_macros
MIT OR Unlicense (1) byteorder
Zlib (1) throbber-widgets-tui

许可证

此存储库的许可证是zlib。请自由使用,但无任何保证。

依赖项

约8–17MB
约231K SLoC