Rust library for getting information about the current user and environment.
Check out the documentation for examples.
- Get the user's full name
- Get the user's username
- Get the user's preferred language(s)
- Get the devices's hostname
- Get the devices's "pretty hostname" or "fancy name"
- Get the devices's desktop environment
- Get the devices's OS name and version
- Get the devices's platform name
- Get the devices's CPU architecture and its width
WhoAmI targets all platforms that can run Rust, including:
- Linux
- Windows
- Mac OS
- BSD variants (FreeBSD, others)
- illumos variants (SmartOS, OmniOS, others)
- Redox
- Web Assembly
- Fake implementation
- Web Browser - DOM
- WASI (Wasite, others) untested, testing planned later
- Daku (Ardaku/Quantii, others) planned later
- Android planned later
- iOS / watchOS / tvOS untested
- Fuchsia planned later
- GNU/Hurd untested
- Others? (make a PR or open an issue)
MSRV is updated according to the Ardaku MSRV guidelines, so it will only get updated on minor and major version bumps. All 2.x releases will be maintained with bugfixes until the end of 2027 at minimum, AND at least 1.5 years after the minimum supported Rust version was released (whichever is later). Past MSRV bumps and future plans:
- WhoAmI 2.3: Rust 1.95 MSRV (bump to get
cfg_select! {}to make FFI code prettier) - WhoAmI 2.2: Rust 1.85 MSRV (bump to get the 2024 edition, pull in nix, etc.)
- WhoAmI 2.1: Rust 1.75 MSRV (bump for new lang features, faster CI, pull in libc, etc., maintained until the end of 2027)
- WhoAmI 2.0: Rust 1.65 MSRV (promised MSRV, maintained until the end of 2027)
- WhoAmI 1.x: Rust 1.40 MSRV (old MSRV policy, maintained until end of 2026)
Target-Specific MSRVs:
- When the
stdfeature is disabled, WhoAmI bumps the MSRV to Rust 1.81 for the WhoAmI 2.0 and WhoAmI 2.1 release tracks. This feature should usually stay enabled, unless you have a specific use-case targeting no-std.
whome - whoami command RiR (Re-written in Rust) that depends on this crate.
The interactive testing procedure is documented in the release PR template. The full manual test suite is run for each change that affects multiple platforms.
Copyright © 2017-2026 The WhoAmI Contributors.
Licensed under any of
- Apache License, Version 2.0, (LICENSE_APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- Boost Software License, Version 1.0, (LICENSE_BOOST or https://www.boost.org/LICENSE_1_0.txt)
- MIT License, (LICENSE_MIT or https://mit-license.org/)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as described above, without any additional terms or conditions.
All of my projects are developed without using AI/LLM tooling. LLM usage for contributions to any of my projects is strictly disallowed, with the exception of LLM tooling trained on exclusively CC0, Unlicense, or equivalently-licensed code. Additionally, any LLM tooling used for contributions must not claim or require claiming its own authorship according to its usage policy.
By opening a PR on any of my repositories, you assert that the work (excluding any test data) is either human generated, computer generated trained on works in the public domain (with generated works under your sole ownership to license), or a combination of the two. LLM bug reports are welcome as issues, as long as there is a disclaimer that it was discovered with an LLM. For comments on PRs and issues, LLM usage is strictly disallowed, including quoting or citing an LLM's opinion or suggestion.
If you want help using or contributing to this library, feel free to send me an email at aldaronlau+oss@gmail.com.