A resource monitor in your browser, in Rust

Related tags

Command-line axact
Overview

axact

A resource monitor in your browser, so you can view the state of a VM or some other remote host. Built with Rust & Preact, see the video:

https://youtu.be/c_5Jy_AVDaM

Community forks

223535789-4013dd26-4902-44a0-80a2-4c22f0201a62

License

This project is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT for details.

Comments
  • A little better ui

    A little better ui

    I refactored the frontend with a lightweight frontend library named yeap (https://github.com/yeapjs/yeap) and added a tower in the backend for the static files delivered.

    The frontend updates were optimized with yeap (yeap updates the DOM directly without virtual DOM like with preact).

    (This PR was created more for the fun of development than anything else)

    opened by hanako-eo 3
  • Some reasonably detailed experiments

    Some reasonably detailed experiments

    Enjoyed the original and tried a few things that eventually turned out quite nice IMO.

    Pretty new to Rust and hadn't tried out No build tools Preact - should probably have switched to JSX.

    All the best!

    opened by shahzadnaeem 2
  • Upgrade sysinfo to fix CPU usage on Linux

    Upgrade sysinfo to fix CPU usage on Linux

    Hi, this PR just bumps sysinfo from 0.28.1 to 0.28.2. This fixes a bug you noticed in the video, where the CPU usage never goes to zero for any given core.

    In a lucky coincidence, I was dealing with this bug shortly before watching your video: https://github.com/GuillaumeGomez/sysinfo/issues/945

    Thanks for publishing this video+code (and everything else)!

    Before:

    image

    After:

    image

    opened by rgwood 1
  • Support 128 cores

    Support 128 cores

    thank you for this cool utility @fasterthanlime ! I use it locally to monitor SSH coding on a super fast box w/256GB Ram / 64 Cores. Here is what I changed:

    • [ ] color from green -> red clear -> solid to indicate core usage
    • [ ] sort core layout based on usage
    • [ ] squares
    image

    Todo

    • [ ] make squares scale in regards to core count
    opened by useafterfree 1
  • Code crash / forgot to push?

    Code crash / forgot to push?

    Hi!

    I know that this is only a demo-demo repo for the YouTube video but I want to report that anyways. Feel free to ignore.

    When starting the code from commit 3cf751345bfc003bc0616d33c43d7c08d3d61dd9 on my Ubuntu 22.10 machine I get a panic because of unwrapping in line https://github.com/fasterthanlime/axact/blob/3cf751345bfc003bc0616d33c43d7c08d3d61dd9/src/main.rs#L37.

    Here is the backtrace:

    $ RUST_BACKTRACE=1 RUST_LOG=debug cargo run
        Finished dev [unoptimized + debuginfo] target(s) in 0.04s
         Running `target/debug/axact`
    Listening on 0.0.0.0:7032
    thread 'tokio-runtime-worker' panicked at 'called `Result::unwrap()` on an `Err` value: SendError([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])', src/main.rs:37:24
    stack backtrace:
       0: rust_begin_unwind
                 at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panicking.rs:575:5
       1: core::panicking::panic_fmt
                 at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/panicking.rs:64:14
       2: core::result::unwrap_failed
                 at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/result.rs:1791:5
       3: core::result::Result<T,E>::unwrap
                 at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/result.rs:1113:23
       4: axact::main::{{closure}}::{{closure}}
                 at ./src/main.rs:37:13
       5: <tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll
                 at /home/stefano/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/blocking/task.rs:42:21
       6: tokio::runtime::task::core::Core<T,S>::poll::{{closure}}
                 at /home/stefano/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/task/core.rs:223:17
       7: tokio::loom::std::unsafe_cell::UnsafeCell<T>::with_mut
                 at /home/stefano/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/loom/std/unsafe_cell.rs:14:9
       8: tokio::runtime::task::core::Core<T,S>::poll
                 at /home/stefano/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/task/core.rs:212:13
       9: tokio::runtime::task::harness::poll_future::{{closure}}
                 at /home/stefano/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/task/harness.rs:476:19
      10: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
                 at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/panic/unwind_safe.rs:271:9
      11: std::panicking::try::do_call
                 at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panicking.rs:483:40
      12: __rust_try
      13: std::panicking::try
                 at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panicking.rs:447:19
      14: std::panic::catch_unwind
                 at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panic.rs:137:14
      15: tokio::runtime::task::harness::poll_future
                 at /home/stefano/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/task/harness.rs:464:18
      16: tokio::runtime::task::harness::Harness<T,S>::poll_inner
                 at /home/stefano/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/task/harness.rs:198:27
      17: tokio::runtime::task::harness::Harness<T,S>::poll
                 at /home/stefano/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/task/harness.rs:152:15
      18: tokio::runtime::task::raw::poll
                 at /home/stefano/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/task/raw.rs:255:5
      19: tokio::runtime::task::raw::RawTask::poll
                 at /home/stefano/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/task/raw.rs:200:18
      20: tokio::runtime::task::UnownedTask<S>::run
                 at /home/stefano/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/task/mod.rs:431:9
      21: tokio::runtime::blocking::pool::Task::run
                 at /home/stefano/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/blocking/pool.rs:159:9
      22: tokio::runtime::blocking::pool::Inner::run
                 at /home/stefano/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/blocking/pool.rs:511:17
      23: tokio::runtime::blocking::pool::Spawner::spawn_thread::{{closure}}
                 at /home/stefano/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/blocking/pool.rs:469:13
    note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
    

    I saw that in the video at https://youtu.be/c_5Jy_AVDaM?t=2970. In the video you just ignored the result instead of unwrapping. Maybe you just forget a git push?

    opened by senden9 1
Owner
amos
hi, I'm amos! 🦀 I make articles & videos about how computers work 🐻‍❄ cool bear's less cool counterpart ✨ be kind
amos
Blaze is a Rust script that continuously monitors server resource usage and sends real-time summaries and alerts to a Discord channel via Webhook.

Blaze Blaze is a Rust script designed to run 24/7 on a server, providing a summary of resource usage every 30 minutes (configurable) to a Discord chan

ShadowArcanist 18 Sep 23, 2024
Cross-platform GameMaker extension for getting system information and resource usage

GM Sysinfo Cross-platform GameMaker extension for getting system information and resource usage Table of Contents Table of Contents Examples Display m

SpikeHD 3 Dec 1, 2023
This tool was developed as part of a course on forensic analysis and cybersecurity. It is intended to be used as a training resource to help students understand the structure and content of job files in Windows environments.

Job File Parser Job File Parser is a Rust-based tool designed for parsing both legacy binary job files and modern XML job files used by the Windows Ta

Mehrnoush 3 Aug 12, 2024
A git sub-command to view your git repository in the web browser

git-view A git sub-command to view your git repository in the web browser! About Are you also frustrated from moving your hands away from the keyboard

Hamothy 5 Sep 26, 2022
Another TUI based system monitor, this time in Rust!

Another TUI based system monitor, this time in Rust!

Caleb Bassi 2.1k Jan 3, 2023
A discord bot to view & monitor OpenSea collections, written in Rust

Titan What is this This is a discord bot to monitor OpenSea collections and get info about them, including: Floor Price Activity Sales per Hour And mo

theldb 3 Oct 11, 2022
A cross-platform graphical process/system monitor with a customizable interface and a multitude of features

A cross-platform graphical process/system monitor with a customizable interface and a multitude of features. Supports Linux, macOS, and Windows. Inspired by both gtop and gotop.

Clement Tsang 5.8k Jan 8, 2023
Memory usage monitor for process trees

gotta-watch-em-all Executes a process with given arguments and monitors, logs when memory usage grows to a new peak. Example: cargo run -- cargo -- bu

Aaron Friel 8 Dec 8, 2022
Small command-line tool to switch monitor inputs from command line

swmon Small command-line tool to switch monitor inputs from command line Installation git clone https://github.com/cr1901/swmon cargo install --path .

William D. Jones 5 Aug 20, 2022
Socket Monitor: A prettier and simpler alternative to netstat or ss for socket monitoring with the ability to scan for malicious IP addresses.

?? Somo A prettier alternative to netstat or ss for socket monitoring. ⬇️ Installation: 1. Install cargo: From crates.io. 2. Install the somo crate: c

Theodor Peifer 13 Jun 6, 2023
TUI monitor handler for Hyprland [maintainer=@Degra02]

MonitorMaestro Tired of fiddling with Hyprland configs? Monitor Maestro lets you switch between monitor layouts in a snap! This Rust-powered TUI app l

Hyprland Community 11 Jun 27, 2024
A minimal browser with a super simple rendering engine for HTML and CSS, using Rust.

minimal-browser A minimal browser with a super simple rendering engine for HTML and CSS, using Rust. Credit: https://github.com/mbrubeck and https://l

Federico Baldini 3 Jan 15, 2023
A browser switcher/chooser written in Rust

bro Introduction One project in Rust that allows users to choose their web browser when clicking a link is bro. bro is a command-line utility that all

Alexander Qi 4 Jan 29, 2023
The hacker's BLE (bluetooth low energy) browser terminal app

Blendr is a terminal UI app for browsing BLE (Bluetooth Low Energy) devices. It allows you to inspect, search, connect, and analyze data coming from B

Dmitriy Kovalenko 120 Jul 4, 2023
🐢 Atuin replaces your existing shell history with a SQLite database, and records additional context for your commands

Atuin replaces your existing shell history with a SQLite database, and records additional context for your commands. Additionally, it provides optional and fully encrypted synchronisation of your history between machines, via an Atuin server.

Ellie Huxtable 4.6k Jan 1, 2023
Save image from your clipboard 📋 as an image file directly from your command line! 🔥

Clpy ?? Save copied image from clipboard as an image file directly from your command line! Note It works only on windows as of now. I'll be adding sup

Piyush Suthar 13 Nov 28, 2022
FastSSH is a TUI that allows you to quickly connect to your services by navigating through your SSH config.

Connect quickly to your services ?? FastSSH is a TUI that allows you to quickly connect to your services by navigating through your SSH config. Instal

Julien 85 Dec 14, 2022
Deadliner helps you keep track of the time left for your deadline by dynamically updating the wallpaper of your desktop with the time left.

Deadliner Watch the YouTube video What's Deadliner? Deadliner is a cross-platform desktop application for setting deadline for a project and keeping t

Deadliner 34 Dec 16, 2022
By mirroring traffic to and from your machine, mirrord surrounds your local service with a mirror image of its cloud environment.

mirrord lets you easily mirror traffic from your Kubernetes cluster to your development environment. It comes as both Visual Studio Code extension and

MetalBear 2.1k Jan 3, 2023