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数据库接口 中排名

Download history 127/week @ 2024-04-26 73/week @ 2024-05-03 65/week @ 2024-05-10 97/week @ 2024-05-17 92/week @ 2024-05-24 208/week @ 2024-05-31 133/week @ 2024-06-07 81/week @ 2024-06-14 82/week @ 2024-06-21 32/week @ 2024-06-28 49/week @ 2024-07-05 61/week @ 2024-07-12 55/week @ 2024-07-19 56/week @ 2024-07-26 57/week @ 2024-08-02 26/week @ 2024-08-09

每月203次下载
9 个Crates中使用了 (直接使用6个)

MIT 协议

20KB
224

🔐 keyring-lib

使用操作系统特定的密钥环管理凭据:Linux上的 Secret Service,MacOS上的 Security Framework 和 Windows上的 Security Credentials

这个库旨在成为 keyring 的高级API,keyring是一个跨平台库,用于管理凭据,可以将其视为对其的便捷包装

  • 使用 tokio 使lib异步。
  • 简化了cargo特性:默认为 tokio,还有 tokio-opensslasync-ioasync-io-openssl 可用。
  • 添加了 serde cargo特性,该特性允许将密钥环条目从字符串进行序列化和反序列化。
  • 更改了声明服务名称的方式:不再需要在声明密钥环条目时每次都声明,只需在程序开始时使用函数 keyring::set_global_service_name 声明一次。
  • 添加了新的函数 find_secret,该函数返回一个 Result<Option<String>>
  • 启用了使用 log crate的日志记录。
  • 基于linux keyutils 密钥环添加了密钥环缓存(仅在Linux机器上工作)。

请参阅完整的 API文档 和一些 示例

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所需的所有内容:cargocargo-watchrust-binrust-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

特别感谢 NLnet 基金会欧洲委员会,他们帮助该项目从以下机构获得财务支持:

如果您欣赏这个项目,欢迎使用以下任何一种方式捐赠

GitHub PayPal Ko-fi Buy Me a Coffee Liberapay

依赖项

~3–16MB
~188K SLoC