An open API service indexing awesome lists of open source software.

https://github.com/thevickypedia/sysmonk

A Rustic System Monitor
https://github.com/thevickypedia/sysmonk

Last synced: 3 months ago
JSON representation

A Rustic System Monitor

Awesome Lists containing this project

README

        

# SysMonk

[![made-with-rust][rust-logo]][rust-src-page]

[![crates.io][crates-logo]][crate]

[![build][gh-logo]][build]
[![none-shall-pass][nsp-logo]][nsp]

#### Summary
[`SysMonk`][repo] is a highly efficient, lightweight API for resource monitoring that uses WebSockets for real-time streaming.

### Installation

```shell
cargo add SysMonk
```

### Usage
```rust
use sysmonk;

#[actix_rt::main]
async fn main() {
match sysmonk::start().await {
Ok(_) => {
println!("SysMonk session has ended")
}
Err(err) => {
eprintln!("Error starting SysMonk: {}", err)
}
}
}
```

Download OS specific Executable

###### macOS (x86_64)
```shell
curl -o SysMonk-Darwin-x86_64.tar.gz -LH "Accept: application/octet-stream" "https://github.com/thevickypedia/SysMonk/releases/latest/download/SysMonk-Darwin-x86_64.tar.gz"
```

###### macOS (arm64)
```shell
curl -o SysMonk-Darwin-arm64.tar.gz -LH "Accept: application/octet-stream" "https://github.com/thevickypedia/SysMonk/releases/latest/download/SysMonk-Darwin-arm64.tar.gz"
```

###### Linux (x86_64)
```shell
curl -o SysMonk-Linux-x86_64.tar.gz -LH "Accept: application/octet-stream" "https://github.com/thevickypedia/SysMonk/releases/latest/download/SysMonk-Linux-x86_64.tar.gz"
```

###### Windows (x86_64)
```shell
curl -o SysMonk-Windows-x86_64.zip -LH "Accept: application/octet-stream" "https://github.com/thevickypedia/SysMonk/releases/latest/download/SysMonk-Windows-x86_64.zip"
```

#### Environment Variables

**Mandatory**
- **username**: Username for the API server.
- **password**: Password for the API server.

**Optional**
- **debug**: Boolean flag to enable debug level logging. Defaults to `false`
- **utc_logging**: Boolean flag to set timezone to UTC in the output logs. Defaults to `true`
- **host**: IP address to host the server. Defaults to `127.0.0.1` / `localhost`
- **port**: Port number to host the application. Defaults to `8000`
- **session_duration**: Time _(in seconds)_ each authenticated session should last. Defaults to `3600`
- **workers**: Number of workers to spin up for the server. Defaults to the number of physical cores.
- **max_connections**: Maximum number of concurrent connections per worker. Defaults to `3`
- **websites**: Vector of websites (_supports regex_) to add to CORS configuration. _Required only if tunneled via CDN_

## Crate
[https://crates.io/crates/SysMonk][crate]

### Cargo Docs - Official Runbook
[https://docs.rs/SysMonk/latest/sysmonk/][docs]

**Generator**
```shell
cargo doc --document-private-items --no-deps
```

## Linting
### Requirement
```shell
rustup component add clippy
```
### Usage
```shell
cargo clippy --no-deps --fix
```

## License & copyright

© Vignesh Rao

Licensed under the [MIT License][license]

[repo]: https://github.com/thevickypedia/SysMonk
[license]: https://github.com/thevickypedia/SysMonk/blob/main/LICENSE
[build]: https://github.com/thevickypedia/SysMonk/actions/workflows/rust.yml
[rust-src-page]: https://www.rust-lang.org/
[rust-logo]: https://img.shields.io/badge/Made%20with-Rust-black?style=for-the-badge&logo=Rust
[gh-logo]: https://github.com/thevickypedia/SysMonk/actions/workflows/rust.yml/badge.svg
[nsp-logo]: https://github.com/thevickypedia/SysMonk/actions/workflows/none.yml/badge.svg
[nsp]: https://github.com/thevickypedia/SysMonk/actions/workflows/none.yml
[crate]: https://crates.io/crates/SysMonk
[gh-checks]: https://github.com/thevickypedia/SysMonk/actions/workflows/rust.yml
[crates-logo]: https://img.shields.io/crates/v/SysMonk.svg
[docs]: https://docs.rs/SysMonk/latest/sysmonk/