#send-message #system #applications #native #layer #standard #protocols

protocols

协议包是一个本地 Rust 库,提供了一个应用层系统,旨在简化系统间消息的发送。

1 个不稳定版本

使用旧的 Rust 2015

0.0.1 2018年10月27日

#88 in #send-message

MIT/Apache

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