#xmpp #struct #id #protocols #part #node #jabber-id

no-std jid

一个提供Jid结构体以用于Jabber ID的crate

25个版本

0.11.1 2024年7月23日
0.10.0 2023年8月20日
0.9.4 2022年7月13日
0.9.3 2022年3月7日
0.1.0 2017年2月27日

#211 in 网络编程

Download history 66/week @ 2024-04-29 66/week @ 2024-05-06 103/week @ 2024-05-13 103/week @ 2024-05-20 95/week @ 2024-05-27 112/week @ 2024-06-03 86/week @ 2024-06-10 91/week @ 2024-06-17 104/week @ 2024-06-24 13/week @ 2024-07-01 39/week @ 2024-07-08 65/week @ 2024-07-15 275/week @ 2024-07-22 105/week @ 2024-07-29 52/week @ 2024-08-05 61/week @ 2024-08-12

502 每月下载量
13 个crate中使用了(4个直接使用)

MPL-2.0 许可证

76KB
1.5K SLoC

jid

这是什么?

一个提供Jid结构体以用于Jabber ID的crate。它在xmpp-rs中使用,但当然其他XMPP库也可以使用。

它使用什么许可证?

MPL-2.0或更高版本,请参阅LICENSE文件。

注意

此库尚未实现RFC7622。


lib.rs:

表示XMPP地址,也称为JabberID(JID),用于XMPP协议。一个Jid可以有一个或三个部分,形式为node@domain/resource

  • (可选)节点部分指定服务器上的特定账户/服务,例如 username@server.com
  • 域部分指定服务器,例如 irc.jabberfr.org
  • (可选)资源部分指定更具体的客户端,例如群聊的参与者(jabberfr@chat.jabberfr.org/user)或与账户关联的特定客户端设备(user@example.com/dino

Jid 枚举可以是两种变体之一,包含更具体的类型

  • BareJidJid::Bare变体):没有资源的JID
  • FullJid (Jid::Full 变体): 带有资源的 JID

按照 XMPP 协议,JID 只能包含有效的 UTF-8。然而,在以下情况下创建任何形式的 Jid 都可能失败

  • 语法错误:创建具有空(但已声明)的节点或资源部分的 Jid,例如 @example.comuser@example.com/
  • stringprep 错误:某些字符根据 stringprep 算法无效,例如混合从左到右和从右到左的字符

依赖项

~1.2–2MB
~60K SLoC