42 releases (24 stable)
| 7.4.0 | Apr 20, 2025 |
|---|---|
| 7.3.1 | Nov 11, 2023 |
| 7.2.0 | Nov 26, 2022 |
| 7.0.0 | Jul 12, 2022 |
| 0.0.2 | Mar 4, 2015 |
#8 in Authentication
1,211,522 downloads per month
Used in 1,475 crates
(654 directly)
125KB
190 lines
This library makes it easy to read passwords in a console application on all platforms, Unix, Windows, WASM, etc.
Here's how you can read a password:
let password = rpassword::read_password().unwrap();
println!("Your password is {}", password);
You can also prompt for a password:
let password = rpassword::prompt_password("Your password: ").unwrap();
println!("Your password is {}", password);
Finally, in unit tests, you might want to pass a Cursor, which implements BufRead. In that
case, you can use read_password_from_bufread and prompt_password_from_bufread:
use std::io::Cursor;
let mut mock_input = Cursor::new("my-password\n".as_bytes().to_owned());
let password = rpassword::read_password_from_bufread(&mut mock_input).unwrap();
println!("Your password is {}", password);
let mut mock_input = Cursor::new("my-password\n".as_bytes().to_owned());
let mut mock_output = Cursor::new(Vec::new());
let password = rpassword::prompt_password_from_bufread(&mut mock_input, &mut mock_output, "Your password: ").unwrap();
println!("Your password is {}", password);
Rustastic Password
rpassword makes it easy to read passwords from Rust code in console applications on all platforms, Unix, Windows, WASM and more.
It's similar to Linux's C function getpass() or Python's getpass module.

rpassword is made available free of charge. You can support its development through Liberapay 💪
Usage
Add rpassword as a dependency in Cargo.toml:
[dependencies]
rpassword = "7.4"
See examples and docs at https://docs.rs/rpassword.
License
The source code is released under the Apache 2.0 license.
Dependencies
~0–11MB
~81K SLoC