9个不稳定版本 (3个破坏性版本)
0.4.3 | 2024年6月3日 |
---|---|
0.4.2 | 2024年4月8日 |
0.4.0 | 2024年3月14日 |
0.3.2 | 2023年12月31日 |
0.1.0 | 2023年8月27日 |
#375 在 数据库接口 中排名
每月203次下载
在 9 个Crates中使用了 (直接使用6个)
20KB
224 行
🔐 keyring-lib
使用操作系统特定的密钥环管理凭据:Linux上的 Secret Service
,MacOS上的 Security Framework
和 Windows上的 Security Credentials
。
这个库旨在成为 keyring 的高级API,keyring是一个跨平台库,用于管理凭据,可以将其视为对其的便捷包装
- 使用
tokio
使lib异步。 - 简化了cargo特性:默认为
tokio
,还有tokio-openssl
、async-io
和async-io-openssl
可用。 - 添加了
serde
cargo特性,该特性允许将密钥环条目从字符串进行序列化和反序列化。 - 更改了声明服务名称的方式:不再需要在声明密钥环条目时每次都声明,只需在程序开始时使用函数
keyring::set_global_service_name
声明一次。 - 添加了新的函数
find_secret
,该函数返回一个Result<Option<String>>
。 - 启用了使用 log crate的日志记录。
- 基于linux keyutils 密钥环添加了密钥环缓存(仅在Linux机器上工作)。
use keyring::{set_global_service_name, KeyringEntry};
#[tokio::main]
async fn main() {
// define the global keyring service name once
set_global_service_name("example");
// create a keyring entry from a key string
let entry = KeyringEntry::try_new("key").unwrap();
// define a secret
entry.set_secret("secret").await.unwrap();
// get a secret
entry.get_secret().await.unwrap();
// find a secret
entry.find_secret().await.unwrap();
// deletea secret
entry.delete_secret().await.unwrap();
}
开发
开发环境由 Nix 管理。运行 nix-shell
将启动一个shell,其中包含开始使用lib所需的所有内容:cargo
、cargo-watch
、rust-bin
、rust-analyzer
…
# Start a Nix shell
$ nix-shell
# then build the lib
$ cargo build -p keyring-lib
贡献
在 SourceHut 上有一个可用的 错误追踪器。 [发送电子邮件]
在 SourceHut 上有一个可用的 邮件列表。 [发送电子邮件] [订阅] [退订]]
如果您想 报告错误,请发送电子邮件到 ~soywod/[email protected]。
如果您想 提议功能 或 修复错误,请发送补丁到 ~soywod/[email protected]。发送补丁的最简单方法是使用 git send-email,按照 此指南 配置 git。
如果您只是想 讨论 项目,请加入 Matrix 工作空间 #pimalaya 或直接联系我 @soywod。您也可以使用邮件列表。
赞助
特别感谢 NLnet 基金会 和 欧洲委员会,他们帮助该项目从以下机构获得财务支持:
- NGI Assure 于 2022 年
- NGI Zero Entrust 于 2023 年
如果您欣赏这个项目,欢迎使用以下任何一种方式捐赠
依赖项
~3–16MB
~188K SLoC