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_cliDespite 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 --helpRight 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.