14个版本
0.2.0 | 2024年1月15日 |
---|---|
0.1.6 | 2024年1月17日 |
0.1.5 | 2023年2月7日 |
0.1.4 | 2022年9月22日 |
0.0.1 | 2020年10月22日 |
#71 在 无标准库
1,797 每月下载量
用于 9 个crates(8直接)
16KB
111 行
coap-handler
coap-handler crate定义了CoAP服务器(在网络中监听请求并解析消息)和请求处理器(处理请求并从它们创建响应)之间的接口。
通过使用coap-message crate,该接口在消息格式上是通用的,允许处理器直接在服务器实现准备的发送缓冲区中构建响应。通过将请求处理和响应阶段分离,即使在只有一个网络缓冲区的网络堆栈上也可以实现服务器。
在coap-handler-implementations crate中提供了便利性、示例和参考实现。
当前接口的已知缺点是
-
未考虑异步处理。
-
处理器可变性有点不确定 -- 服务器尚无法表达任何关于一次只运行一个处理器的承诺,因此处理器通常持有对
RefCell
的共享引用,该引用已被borrow_mut()
'd(如果没有其他代码可以与CoAP服务器并发运行可以访问到T
),或者try_borrow_mut()
'd(并返回一个5.03 Max-Age:0响应)。正在探索替代方案(在这些方案中,可以根据对它们数据的单个可变引用构建多个处理器)。
-
不支持多个响应(例如,在观察中)。
本crate的主要项目是[Handler]特质。除了[Handler],还可以实现[Reporting]特质,以简化将渲染的资源包含在发现中,例如通过coap-handler-implementations中实现的/.well-known/core
。
许可证:MIT OR Apache-2.0
依赖项
~220KB