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
每月下载量2,083
在12个crate中(9个直接)使用
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