10个重大版本发布

0.35.0 2024年5月17日
0.34.1 2024年3月9日
0.33.0 2024年2月20日
0.31.0 2023年10月27日
0.25.0 2021年4月1日

网络编程中排名第180

Download history 334/week @ 2024-04-27 341/week @ 2024-05-04 554/week @ 2024-05-11 778/week @ 2024-05-18 824/week @ 2024-05-25 946/week @ 2024-06-01 898/week @ 2024-06-08 582/week @ 2024-06-15 643/week @ 2024-06-22 439/week @ 2024-06-29 447/week @ 2024-07-06 673/week @ 2024-07-13 439/week @ 2024-07-20 389/week @ 2024-07-27 383/week @ 2024-08-03 732/week @ 2024-08-10

每月下载量2,083
12个crate中(9个直接)使用

LGPL-2.0-or-later

9.5MB
70K SLoC

此crate实现了与Sequoia后台服务通信的IPC机制。


lib.rs:

Sequoia的IPC机制。

此crate实现了与Sequoia服务通信的IPC机制。

理由

Sequoia使用后台服务,例如用于管理和更新公钥。

设计

我们使用文件系统作为命名空间来发现服务。每个服务都有一个名为rendezvous point的文件。对这个文件的访问使用文件锁进行序列化。此文件包含一个套接字地址和一个cookie,我们使用它们连接到服务器并验证身份。如果文件不存在、格式不正确或未指向可用的服务器,我们将按需启动一个新的。

此设计模仿Unix套接字,但在Windows上也能工作。

外部服务器与内部服务器

这些服务器可以是外部进程,也可以与当前进程位于同一位置。我们首先启动一个外部进程,然后回退到启动线程。

使用外部进程是首选选项。它允许我们持续更新密钥存储中的密钥,例如。这也意味着我们不会在你的进程中创建线程,这在各种原因上是不被推崇的。

有关更多信息,请参阅IPCPolicy

依赖关系

~14–27MB
~405K SLoC