1 个不稳定版本
使用旧的 Rust 2015
0.0.1 | 2018年10月27日 |
---|
#88 in #send-message
13KB
139 行
protocolhandler
一个 Rust 库,用于识别和处理协议的缓冲区表示。
lib.rs
:
这是什么?
协议包是一个本地 Rust 库,旨在简化系统间消息的发送。
目前,这个包的目的是让社区了解正在进行的工作。目前,协议库尚未准备好商用,并且任何包含的协议不应被视为标准,直到确定了可升级性系统。
请查看存储库中的示例文件夹以了解基本用法。
它是如何工作的
每个发送的消息都使用一个根消息(由本库定义),其目的是将数据包中的数据与模式匹配。如果接收器支持特定模式的解码,它将继续处理过程。
目前,Windows DLL 文件从插件文件夹和初始化时从 ./libraries//target/debug/*.dll 动态加载。如果您在库文件夹中使用 create-protocols-plugin cargo 应用程序,"cargo build" 生成的 dll 应该可以立即加载。
贡献
我欢迎任何贡献,并且目前。由于初始的技术债务,核心设计特别需要想法和建议。请通过 Github 联系我。
仍在处理的问题
不同的插件如何互相通信?它们需要互相通信吗?目前,根消息协议使用 Protobufs,但这可能会根据未来的需求而改变。
未来
语言无关。协议需要 FFI 功能,并支持尽可能多的语言。
跨平台。如果没有与其他操作系统兼容,这个包就没有意义。
标准。将引入一组“标准”作为单独的包。您还应该能够创建自己的标准系统。
Docker。每种消息类型的处理应在安全性和可能的可扩展性容器中进行。
标准安全层。(仍在规划中)了解消息是否被篡改或重放可能很重要。
这个crate不是什么
现有协议的替代品。HTTP、SSH、SMTP等目前状况良好。虽然为这些crate创建库不会太具挑战性,但说服各种类型的web服务器和浏览器支持协议crate可能被视为一个问题。
安装
将以下内容添加到cargo.toml中
[dependencies]
plugins = "*"
依赖项
约1-9MB
约75K SLoC