Giter VIP home page Giter VIP logo

pachtop's Introduction

Logo

Pachtop

The only system monitor application you'll ever need.
Download for macOS ยท Windows ยท Linux

Pachtop is a cross-platform desktop application built with Rust that allows you to monitor your system resources in real time.

NOTE: Pachtop is under active development, most of the features are still experimental and subject to change.



GitHub Workflow Status (with branch)

๐Ÿ’ป Installation

Please see the releases page for the latest version. Pachtop is available for Windows, MacOS & Linux

๐Ÿ’ฏ Motivation

The inspiration for Pachtop stems mainly from using Stacer which is a comprehensive System optimizer and monitoring solution. Although, Pachtop does not implement any system optimizer functionality (yet!), It provides more in-depth metrics and information about your system. I wanted to create a similar application to Stacer but with a more modern UI and a more robust codebase. I also wanted to learn Rust and this seemed like a good opportunity to do so. If you hadn't guessed, Pachtop is named after the legendary top linux program that displays information about CPU and memory utilization. Pachtop will always remain open-source and free to use.

๐Ÿš€ Showcase

Dashboard

Disks

Processes

๐Ÿ—๏ธ Architecture

Pachtop is built with what I'd like to call the "VRRTT" stack (Vite, Rust, React, Typescript, Tauri.)

  • Vite is a frontend build tool that uses Rollup under the hood. It's blazingly fast and has a lot of cool features like hot module reloading and code splitting.
  • Rust is a systems programming language that is blazingly fast and memory efficient. Rust is also a very safe language and has a lot of cool features like ownership and borrowing which subsitutues the need for garbage collection.
  • React is a popular frontend library that is used by many companies like Facebook, Netflix, Uber, etc.
  • Typescript is a superset of Javascript that adds static typing to Javascript. It's very easy to learn and has a lot of great features.
  • Tauri is a framework that allows you to build desktop applications with web technologies. Tauri allows us to create a pure Rust native OS webview, without the overhead of your average Electron app. This brings the bundle size and average memory usage down dramatically. It also contributes to a more native feel, especially on macOS due to Safari's close integration with the OS.
  • SysInfo is a Rust crate that provides system information. This crate is used to get information about the system's CPU, memory, disks, network, and processes. This is what Pachtop uses to get the system metrics on different operating systems.

Features & Roadmap

  • Aggregate CPU usage & per-core CPU usage metrics
  • Memory Usage
  • Network Usage
  • System Information
  • Processes
  • Disk Usage
  • Persistent metrics over time
  • Battery Usage?
  • GPU Usage?

License

Pachtop is currently licensed as MIT.

pachtop's People

Contributors

dependabot[bot] avatar pacholoamit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

pachtop's Issues

Ubuntu 22.10, deb package: missing libssl.so.1.1

On Ubuntu 22.10, after installing pachtop_0.3.1_amd64.deb, the application can't be started, complaining about a missing library:

pachtop: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

The AppImage version works.

Ubuntu 22.10 comes with libssl3, (openssl v3), and it doesn't seem to me 1.1 would be available. Possible to build against it?

Skip button on first opening does not work

When starting the application the very first time, it will ask you name, surname and email with a submit and a skip button. Unfortunately the skip button does not work.

Inconsistent chart xaxis points when app is running in the foreground

Description

After some time when the app is minimized, The xaxis points on the chart will represent xaxis points per minute instead of per second. I assume this is some behavior of ChartJS that does this automatically after the window hasn't had any interaction after some time but more research is required.

image

Hi from the author of Mantine DataTable!

Hey @pacholoamit,

This is @icflorescu, the author of Mantine DataTable open-source component.

I recently discovered you are using Mantine DataTable in this repo.
Would you care to share a bit of feedback with me regarding your experience with it?
I'm trying to understand the users' stories and experience with my component in order to see how/if I could further improve the project.

Also, I'm planning to compile a list of startups / projects that are using Mantine DataTable and add it to the project's documentation website. Would you be ok with me adding a logo/link to Pachtop?

Thanks a lot for using Mantine DataTable and apologies for approaching you like this!

Cheers,
Ionut

Pachtop uses too many resources so measurement is garbled

From htop:
Selection_042

Running without sudo (fan is very loud):

mpilka@e15:~/Downloads$ pachtop 
libGL error: failed to open /dev/dri/card0: Permission denied
libGL error: failed to open /dev/dri/card0: Permission denied
libGL error: failed to load driver: iris

Workspace 2_001

Running with sudo (fan is OK):

mpilka@e15:~/Downloads$ sudo pachtop

Workspace 2_002

RAM metrics may be slightly incorrect

Description

Pachtop is using the sysinfo crate to capture metrics for various operating systems. There are discrepancies in the RAM that's being returned from sysinfo that is lightly mentioned in this github issue

FEAT: Consider a plugin system

Description

The idea is to implement a plugin system that adds functionality to Pachtop,

Things to consider:

  1. How to interface with the Rust Tauri "backend"

Update Settings Page - User should be able to update info

Patchtop/Update Settings Page - User should be able to update info

Description

The current settings page lacks the functionality for users to update their information. This issue aims to enhance the settings page by allowing users to patch/update their personal details, such as name, email address, profile picture, or any other relevant information. Enabling users to update their info directly from the settings page will provide a convenient and efficient way for them to manage their account details.

Tasks

  • Modify the settings page UI to include input fields for relevant user information.
  • Implement backend functionality to handle PATCH requests for updating user information.
  • Validate and sanitize user inputs to ensure data integrity and security.
  • Update the user database record with the patched user information.
  • Implement appropriate error handling and display meaningful error messages to users.
  • Test the functionality to ensure that user information can be successfully patched/updated.
  • Consider implementing any necessary access control or authentication mechanisms for user updates.
  • Update the documentation and user guides to include instructions on updating user information via the settings page.

Resources

Feel free to collaborate on any of the tasks listed above or suggest additional improvements that could enhance the user experience when updating information on the settings page. Let's work together to make the settings page more dynamic and user-friendly.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.