1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//! The Rust Keyring
//!
//! This library operates in one of two modes, depending on which of the two features
//! `v1` or `cli` are enabled. Both can be enabled if desired, but typically you use
//! one or the other.
//!
//! If you enable the `v1` feature, this library behaves essentially the same as the v1
//! version of Keyring behaved: it allows easy, platform-independent setting and reading
//! of passwords/secrets on macOS, Windows, and *nix platforms. See the [v1] module docs
//! for details.
//!
//! If you enable the `cli` feature, this library provides the glue by which the Rust CLI
//! example app, the `rust-native-keyring` Python module, and the `keyring-demo` cross-platform
//! application access all available credential stores on all platforms. See the [cli]
//! module docs for details, and the README of this crate for more information.
//!
//! Note that *neither* of these modes are either useful for or meant for use by
//! applications which want to control which credential stores they use on which
//! platforms, or which want to offer more functionality than just reading and writing
//! specific passwords/secrets. Such applications should not be linking to this library at
//! all; they should instead be linking to the
//! [keyring-core](crates.io/crates/keyring-core) library and any specific credential
//! stores they want to use. While this library provides high-quality, maintained sample
//! code for how to link to every known credential store, linking to this library using
//! the `cli` feature will saddle an application with a lot of dependent modules it won't
//! need. Instead, as explained in the README for this crate, developers should just
//! copy/paste useful code from the `cli` module into their applications.
//!
//! For more about how to write an application that uses the Keyring ecosystem, see [this
//! wiki](https://github.com/open-source-cooperative/keyring-rs/wiki/Keyring).
compile_error!;
pub use *;
pub use *;