#imap #tokio #client #protocols #tokio-based #now

tokio-imap

基于 Tokio 的 IMAP 协议(目前为客户端)实现

6 个版本 (破坏性更新)

0.5.0 2020 年 1 月 3 日
0.5.0-alpha.12019 年 11 月 7 日
0.4.0 2018 年 11 月 6 日
0.3.0 2017 年 7 月 23 日
0.1.0 2017 年 6 月 10 日

#226 in 电子邮件

每月 22 次下载

MIT/Apache

200KB
5K SLoC

imap-proto 和 tokio-imap

Build status Join the chat at https://gitter.im/djc/tokio-imap MIT license Apache License 2.0

欢迎所有反馈。请随意提交错误报告、文档请求和其他反馈至 问题跟踪器发推给我

tokio-imap 和 imap-proto 由 Dirkjan Ochtman 创建并维护。如果您能支持持续维护和进一步开发,或者打算在盈利环境中使用它,请考虑支持我在 Patreon 上的开源工作。

tokio-imap:基于 futures 的 IMAP 客户端

crates.io, downloads crates.io, latest release API docs, latest release

一个基于 Tokio 栈,完全异步的 IMAP 库,重点遵循相关规范,主要是 IMAP4rev1,但有限地支持 条件存储 扩展。类型系统用于在可能的情况下帮助确保正确性。到目前为止,只有客户端代码和大量基础设施,据称可以共享——还没有服务器。(如果您需要一个基于 tokio 的服务器,请查看 IMAPServer。)

功能亮点

  • 使用 tokio-coretokio-io 实现完全异步
  • 使用类型系统帮助确保按照规范的正确操作
  • nom 基于的解析器(在 imap-proto 中),到目前为止仅用于服务器响应消息

局限性

  • alpha 级别实现——尚未进行测试,协议覆盖范围有限
  • 在此阶段完全未实现服务器

如何开始

例如,查看 mailsync crate 的用法。

imap-proto:IMAP 类型和服务端协议解析器

crates.io, downloads crates.io, latest release API docs, latest release

imap-proto 是一个低级 IMAP 协议支持 crate,使用类型系统提供安全的 API。它从 tokio-imap 中提取到一个单独的 crate,以便不同的协议实现可以将其作为通用基础设施共享(如 rust-imap 贡献者所提议的)。代码试图尽可能紧密地遵循 IMAP4rev1 RFC,以及扩展。

协议支持在三个部分中实现

  • 尝试尽可能紧密反映规范要求的类型
  • 帮助消耗协议消息的解析器实现
  • 帮助生成协议消息的构建器类型

进度

  • 客户端
    • 解析器:实现了许多常见的服务器响应
    • 类型:实现了大多数常见类型
    • 消息构建器:实现了大多数常见命令
  • 服务器
    • 解析器:未启动
    • 类型:未启动
    • 消息构建器:未启动

依赖项

~15MB
~350K SLoC