49 stable releases

3.14.0 Dec 14, 2025
3.13.0 Nov 13, 2025
3.12.0 Jun 8, 2025
3.10.0 Feb 9, 2025
0.4.0 Nov 12, 2017

#6 in Operating systems

Download history 461918/week @ 2025-10-25 464319/week @ 2025-11-01 511408/week @ 2025-11-08 475680/week @ 2025-11-15 454805/week @ 2025-11-22 507470/week @ 2025-11-29 536406/week @ 2025-12-06 522558/week @ 2025-12-13 321794/week @ 2025-12-20 283875/week @ 2025-12-27 472561/week @ 2026-01-03 513787/week @ 2026-01-10 511589/week @ 2026-01-17 533413/week @ 2026-01-24 562182/week @ 2026-01-31 604584/week @ 2026-02-07

2,299,576 downloads per month
Used in 621 crates (148 directly)

MIT license

130KB
3K SLoC

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
  • AOSC OS
  • Arch Linux
  • Artix Linux
  • CachyOS
  • CentOS
  • Debian
  • DragonFly BSD
  • Elementary OS
  • Emscripten
  • EndeavourOS
  • Fedora
  • FreeBSD
  • Garuda Linux
  • Gentoo Linux
  • HardenedBSD
  • illumos
  • iOS
  • Kali Linux
  • Linux
  • Mabox
  • macOS (Mac OS X or OS X)
  • Manjaro
  • Mariner
  • MidnightBSD
  • Mint
  • NetBSD
  • NixOS
  • Nobara Linux
  • 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.

Dependencies

~0.3–7.5MB
~145K SLoC