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.
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 }
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());
A simple wrapper around the os_info
library.
This tool can be installed using the following cargo command:
cargo install os_info_cli
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
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.
os_info
is licensed under the MIT license. See LICENSE for the details.