# os_info
**Status:**
[](https://travis-ci.org/DarkEld3r/os_info)
[](https://circleci.com/gh/darkeld3r/os_info/tree/master)
[](https://ci.appveyor.com/project/DarkEld3r/os-info/branch/master)
**Project info:**
[](https://docs.rs/os_info)
[](https://crates.io/crates/os_info)
[](https://github.com/darkeld3r/os_info)
**Project details:**
[](https://github.com/darkeld3r/os_info)

[](https://deps.rs/repo/github/darkeld3r/os_info)
## Overview
Library for detecting the operating system type and version.
Based on [os_type](https://github.com/schultyy/os_type). The main difference of
`os_info` is that this library separates completely incompatible operating
systems by conditional compilation and uses specific system API whenever is
possible.
## Usage
To use this crate, add `os_info` as a dependency to your project's Cargo.toml:
```toml
[dependencies]
os_info = "1.3.3"
```
## Example
```rust
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());
```
Right now, the following operating system types can be returned:
- Unknown
- Android
- Emscripten
- Linux
- Redhat
- RedHatEnterprise
- Ubuntu
- Debian
- Arch
- CentOS
- Fedora
- Amazon
- Alpine
- Macos
- Redox
- Windows
If you need support for more OS types, I am looking forward to your Pull
Request.
## Requirements
On Linux based systems this library requires that [lsb_release] is installed.
## License
`os_info` is licensed under the MIT license. See [LICENSE] for the details.
[lsb_release]: http://refspecs.linuxbase.org/LSB_2.0.1/LSB-PDA/LSB-PDA/lsbrelease.html
[LICENSE]: https://github.com/darkeld3r/os_info/blob/master/LICENSE