Skip to content

nasrlol/torque

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Torque - DO NOT RUN OUTSIDE OF A VIRTUAL MACHINE

A lightweight system stress-testing and performance monitoring tool written in Scala with ZIO.

Scala ZIO Combinators / Fibers ZIO HTTP OSHI

Features

  • CPU - Monitor and test CPU performance under load
  • Memory - RAM stress testing with configurable memory allocation
  • Metrics - Live system performance monitoring via HTTP API

Quick Start

Prerequisites

  • Java 25
  • Scala 3.7.4
  • sbt 1.11.7

Installation

git clone https://github.com/nasrlol/torque
cd torque
sbt run

Or get it from my gitea

git clone https://git.nsrddyn.com/nasr/torque
cd torque
sbt run

Usage

Start the Torque server:

sbt run

TODO: Explanation on how to run the tests

The server will start on http://localhost:8080 with the following endpoints:

  • GET /platform - API status
  • GET /cpu - CPU performance metrics and stress testing
  • GET /ram - RAM usage metrics and memory allocation tests

Example API Calls

# Check server status
curl http://localhost:8080/

# Get CPU metrics
curl http://localhost:8080/cpu

# Get RAM metrics  
curl http://localhost:8080/ram

Architecture

Torque is built using modern Scala functional programming patterns:

  • ZIO - For effect management and concurrency
  • ZIO HTTP - For high-performance HTTP server
  • OSHI - For cross-platform system information

Tree


.
├── LICENSE
├── README.md
├── build.sbt
├── project
│   ├── build.properties
├── src
│   └── main
│       └── scala
│           └── main
│               ├── Main.scala
│               ├── domain
│               │   ├── CpuOperations.scala
│               │   └── MemoryOperations.scala
│               ├── infrastructure
│               │   ├── Http.scala
│               │   ├── Resources.scala
│               │   └── routes
│               │       └── Routes.scala
│               └── services
│                   ├── Benchmark.scala
│                   └── Stress.scala

Development

Building from Source

sbt compile

API Documentation

CPU Endpoint

GET /cpu Returns CPU utilization metrics and allows initiating stress tests.

RAM Endpoint

GET /ram Returns memory usage statistics and memory allocation test results.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Built with ZIO for functional effects
  • Uses OSHI for system information
  • Inspired by stress testing tools like Linkpack and PRIME95

About

A lightweight system stress-testing tool written in Scala.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages