Skip to content

Rust library to detect the operating system type

License

Notifications You must be signed in to change notification settings

WangMengabc/os_info

 
 

Repository files navigation

os_info

Status: CI Coverage Dependency status

Project info: Docs.rs Latest version License

Project details: LoC Rust 1.60+ required

Overview

This project consists of two parts: the library that can be used to detect the operating system type (including version and bitness) and the command line tool that uses the library.

Library (os_info)

os_info usage

To use this crate, add os_info as a dependency to your project's Cargo.toml:

[dependencies]
os_info = "3"

This project has serde as an optional dependency, so if you don't need it, then you can speed up compilation disabling it:

[dependencies]
os_info = { version = "3", default-features = false }

Example

let info = os_info::get();

// Print full information:
println!("OS information: {info}");

// Print information separately:
println!("Type: {}", info.os_type());
println!("Version: {}", info.version());
println!("Bitness: {}", info.bitness());
println!("Architecture: {}", info.architecture());

Command line tool (os_info_cli)

A simple wrapper around the os_info library.

Installation

This tool can be installed using the following cargo command:

cargo install os_info_cli

os_info_cli usage

Despite being named os_info_cli during installation, it is actually named os_info. You can use the --help flag to see available options:

os_info --help

Supported operating systems

Right now, the following operating system types can be returned:

  • AIX
  • AlmaLinux
  • Alpaquita Linux
  • Alpine Linux
  • Amazon Linux AMI
  • Android
  • Arch Linux
  • Artix Linux
  • CentOS
  • Debian
  • DragonFly BSD
  • Emscripten
  • EndeavourOS
  • Fedora
  • FreeBSD
  • Garuda Linux
  • Gentoo Linux
  • HardenedBSD
  • illumos
  • Kali Linux
  • Linux
  • Mabox
  • macOS (Mac OS X or OS X)
  • Manjaro
  • Mariner
  • MidnightBSD
  • Mint
  • NetBSD
  • NixOS
  • OpenBSD
  • OpenCloudOS
  • openEuler (EulerOS)
  • openSUSE
  • Oracle Linux
  • Pop!_OS
  • Raspberry Pi OS
  • Red Hat Linux
  • Red Hat Enterprise Linux
  • Redox
  • Rocky Linux
  • Solus
  • SUSE Linux Enterprise Server
  • Ubuntu
  • Ultramarine Linux
  • Unknown
  • Void Linux
  • Windows

If you need support for more OS types, I am looking forward to your Pull Request.

License

os_info is licensed under the MIT license. See LICENSE for the details.

About

Rust library to detect the operating system type

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%