stomata-core 0.1.3

Core stomata library for systems metric collection and visualization via the stomata-cli
Documentation
<div align="center">
  <h1>Stomata</h1>

  <p>
    A CLI tool for **collecting and visualizing system metrics** in real-time. It provides a lightweight, terminal-based dashboard to monitor memory, swap, CPU, and other resources with a clean interface.
  </p>

</div>

<div align="center">
<img src="https://github.com/user-attachments/assets/411bd137-186e-4276-bac1-e586c87c7761" alt="Quick Demo showing stomata cli" />
</div>

> **Note**: Stomata is currently under development and more features and fixes are upcoming.
Right now Stomata is very minimalistic and will introduce new features as the development goes on.

---

## Features

- Real-time **memory and swap usage gauges**  
- Minimal dependencies; built with **Rust**
- Designed as a **workspace**: includes a reusable library (`Stomata-core`) and a CLI (`Stomata-cli`)  

---

## Installation

Install via **crates.io**:

```bash
cargo install stomata-cli
```

You can also add the stomata-core crate in your rust project as it is deployed as a separate crate

```bash
cargo add stomata-core
```

## Building Locally with Cargo
Make sure you have Rust installed on your machine. Stomata is being built using rustc version 1.90.0

Clone the master branch of the repository
```bash
git clone https://github.com/aditya172926/stomata-cli.git
```

Once cloned you can either run `cargo build` or `make build` to execute debug build command from the make file. If you want to build the release execute `make release`

To run the cli, use the command
```bash
stomata --interval 1000
```
interval is an optional arguement to give. It is the refresh rate of the metrics to be fetched and rendered on the terminal UI.

## Contributing
This is a very early stage repository. But feel free to suggest features and make issues before starting to work on a pull request.

### Contributing guidelines
- Fork the repository before starting to work and making a PR.
- PRs made should be related and linked to an existing issue.
- Before making a new issue check if it is not being duplicated.
- Ask for issues to be assigned to you before starting the work.
- Work only on the issues assigned to you, to avoid other people working on the same issue.
- A contributor may be assigned to only one issue at a time, unless it is blocked by other dependent issues related to the main issue that contributor wants to work on.