BoxLang has received a powerful boost with the introduction of bx-oshi
, a revolutionary module that unveils the most intricate details of your system! Envision your BoxLang applications transforming into hardware experts, capable of uncovering hidden information about your CPU, memory, and even sensors like temperature and battery life.
What is BX-OSHI
We are so excited to release bx-oshi
our newest module for BoxLang. This module is based on the great work of the oshi library https://github.com/oshi/oshi?tab=readme-ov-file#documentation. You can use this module to get information about the Operating System and Hardware of the machine you are running on. This is a great way to even get sensor information or embedded system information like battery, raspberry pi, android, etc. This is another step forward for our multi-runtime platform of BoxLang where you will be able to get deep insights into the runtime operating system and hardware.
OSHI is a free JNA-based (native) Operating System and Hardware Information library for Java. It does not require the installation of any additional native libraries and aims to provide a cross-platform implementation to retrieve system information, such as OS version, processes, memory and CPU usage, disks and partitions, devices, sensors, etc.
Installation
Installing the module is very easy. Let's start with an operating system install using our install-bx-module
binary.
install-bx-module bx-oshi
If you are using BoxLang as a CommandBox server, then use Commandbox:
install bx-oshi
Supported Features
- Computer System and firmware, baseboard
- Operating System and Version/Build
- Physical (core) and Logical (hyperthreaded) CPUs, processor groups, NUMA nodes
- System and per-processor load, usage tick counters, interrupts, uptime
- Process uptime, CPU, memory usage, user/group, command line args, thread details
- Physical and virtual memory used/available
- Mounted filesystems (type, usable and total space, options, reads and writes)
- Disk drives (model, serial, size, reads and writes) and partitions
- Network interfaces (IPs, bandwidth in/out), network parameters, TCP/UDP statistics
- Battery state (% capacity, time remaining, power usage stats)
- USB Devices
- Connected displays (with EDID info), graphics and audio cards
- Sensors (temperature, fan speeds, voltage) on some hardware
Contributed Capabilities
Here are the contributed functions in this module:
getSystemInfo()
: Get's the main entry point for the OSHI system: https://www.oshi.ooo/oshi-core-java11/apidocs/com.github.oshi/oshi/SystemInfo.htmlgetOperatingSystem()
: Get's the Operating System information: https://www.oshi.ooo/oshi-core-java11/apidocs/com.github.oshi/oshi/software/os/OperatingSystem.htmlgetHardware()
: Get's the Hardware information: https://www.oshi.ooo/oshi-core-java11/apidocs/com.github.oshi/oshi/hardware/HardwareAbstractionLayer.html
The following are also contributed functions provided by convenience:
getCpuUsage( [interval] )
: Gets the CPU usage of the system with a custom intervalgetFreeSpace( path )
: Gets the free space of a drivegetTotalSpace( path )
: Gets the total space of a drivegetSystemFreeMemory()
: Gets the free memory of the operating systemgetSystemTotalMemory()
: Gets the total memory of the operating systemgetJVMFreeMemory()
: Gets the free memory of the JVMgetJVMTotalMemory()
: Gets the total memory of the JVMgetJVMMaxMemory()
: Gets the max memory of the JVM
Please note that with access to the hardware and operating system, you can get a lot more information. Please visit the OSHI documentation for more information: https://www.oshi.ooo/oshi-core-java11/apidocs/com.github.oshi/oshi/package-summary.html
What is BoxLang?
BoxLang is a modern dynamic JVM language that can be deployed on multiple runtimes: operating system (Windows/Mac/*nix/Embedded), web server, lambda, iOS, android, web assembly, and more. BoxLang combines many features from different programming languages, including Java, ColdFusion, Python, Ruby, Go, and PHP, to provide developers with a modern and expressive syntax.
It is also a drop-in replacement for Adobe ColdFusion and Lucee Engines.
![](https://boxlang.ortusbooks.com/~gitbook/image?url=https%3A%2F%2F1598982152-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F4ENvvb4b3Cmrr1qKj7y4%252Fuploads%252FL5VMJotG20gl7EIl2UeH%252Fimage.png%3Falt%3Dmedia%26token%3D6c520ec3-8c4c-4aa8-a07b-ad82f37ef3e0&width=768&dpr=4&quality=100&sign=3ccee147125d124a237a9a6e9f92d89dc2639e18b76f11912cd6ca0a69b6af06)
How to get started?
Visit our docs at https://boxlang.ortusbooks.com and get coding today. If you want to try it out on the web then go to our online REPL at https://try.boxlang.io. You can also checkout our YouTube playlist: https://www.youtube.com/playlist?list=PLNE-ZbNnndB-40LvAbeSeT2Oi3V2gm_B8
Add Your Comment