#irc-v3 #message-parser #irc

vinezombie

一个模块化的 IRCv3 框架

4 个版本 (2 个破坏性版本)

0.3.1 2024 年 5 月 2 日
0.3.0 2024 年 4 月 28 日
0.2.0 2024 年 4 月 7 日
0.1.0 2023 年 8 月 10 日

网络编程 中排名 399

EUPL-1.2

460KB
10K SLoC

vinezombie 仍在开发中。请谨慎使用。可能存在错误,并且将有进一步的破坏性 0.x 版本发布。预计未来将有许多更多功能。

vinezombie

一个基于 Rust 的模块化 IRCv3 框架。

CI crates.io API docs Chat on libera.chat

vinezombie 是一个用于编写 IRCv3 软件(特别是客户端/机器人)的 Rust 框架。

特性

  • 注重正确性;在不使用 unsafe 的情况下,应该不可能构造出一个正确大小的消息,该消息一旦写入,就不会解析成相同的消息。
  • 零拷贝解析和消息数据的共享。
  • 高度可扩展的 IRC 消息解析;没有带有回退情况的枚举。
  • 面向客户端的处理程序系统,用于查询或更新服务器状态。
  • 对消息标签和 labeled-response 的第一类支持。
  • 包括 SASL 在内的 IRCv3 连接注册的实现。
  • 创建异步 rustls 连接的便捷工具,包括使用自签名证书的服务器连接。
  • 零强制依赖项;最小可选依赖项。
  • 设计为灵活和模块化,可作为库或高度可插拔的框架使用。

构建文档和示例

要本地构建和查看文档,请运行

RUSTDOCFLAGS="--cfg doc_unstable" cargo +nightly doc --all-features --open

doc 中的字符串图可以使用以下方式重新渲染

d2 -t 200 -l dagre --pad 0 doc/strings.d2 doc/strings.d2.svg

vinezombie 的示例可以使用其功能的任何组合,并且应该使用 --all-features 构建。

许可证

在 EUPL-1.2 下许可, 在此概述。您同意将您提交的任何贡献用于 vinezombie 的包含,以在此许可证下重新分发。

EUPL 是一种 copyleft 许可证,涵盖网络使用。它要求归属并使包含 vinezombie 的工作可用于用户(包括通过网络连接的用户)在兼容的 copyleft 许可证下(GPL v2、LGPL/GPL/AGPL v3、MPL v2、EUPL v1.2 或参阅许可证文本以获取完整列表和更多信息)。它还要求在分发作品中披露对 vinezombie 的更改,并在此许可证下提供。

然而,该许可证不是自动病毒性的,因为链接或 IPC,并且 vinezombie 的接口可以复制以与使用它的软件进行互操作性。

讨论

如果您想以软实时的方式讨论 vinezombie 的开发,我们官方的 IRC 频道是 #vinezombieLibera.Chat。通过点击 libera.chat 徽章,您可以在顶部找到到网络聊天室的链接。


<jess> why vinezombie lmao
<TheDaemoness> Because. Grapevines. Undead chat protocols.
<jess> oh my god

依赖关系

~0.2–11MB
~128K SLoC