Keyring-rs
This crate provides a simple CLI for the Rust keyring ecosystem. It also provides sample Rust code for developers who are looking to use the keyring infrastructure in their projects and an inventory of available credential store modules.
Rust CLI
The keyring binary produced by building this crate is a command-line interface for issuing one keyring call at a time and examining its results. Issue the command
keyring --help
for usage information.
Python Module
The CLI provided by this crate is neither efficient nor convenient for scripting, because each invocation loads a credential store, issues just one command against it, and then outputs the results in a format that is hard to parse. If you are looking to do scripting of keyring commands, you are better off using the Python wrapper for this crate available on PyPI in the rust-native-keyring project. Use the shell command
pip install rust-native-keyring
to install it and
to load it into your Python REPL. The sources for this Python module are built using PyO3 and can be found in the python subdirectory of this repository.
Cross-platform GUI
There is a Tauri 2.0 cross-platform GUI in the tauri subdirectory of this repository. This GUI allows you to poke around in any of the keyring-compatible credential stores available on your platform. This GUI is currently in public beta testing on iOS, macOS, and Android (see this issue for details), and it’s available for MacOS (not sandboxed), Linux (Ubuntu), and Windows on CrabNebula.
Credential Stores Wanted!
If you are a credential store module developer, you are strongly encouraged to contribute a connector for your module to the library in this crate, thus making it available to users (in the test apps) and application developers (via sample code). See the module documentation for details.
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
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 dual licensed as above, without any additional terms or conditions.