2 个版本

0.1.1 2022 年 11 月 17 日
0.1.0 2022 年 8 月 31 日

#3 in #echo-server


用于 sabaton-mw

自定义许可

155KB
3.5K SLoC

someip

这是 SOME/IP 协议的实现,有一些限制。

序列化使用 bincode,因此它不会与其他 SOME/IP 的实现交互。
这个问题应该很容易解决,因为 SOME/IP 的序列化相当简单。

接口通过 traits 和 derive 宏定义。在 tests.rs 文件中查找简单示例。

以下是定义服务的方法。

    #[service(
        name("org.hello.service"),
        fields([1]value1:Field1,[2]value2:String, [3]value3: u32),
        events([1 ;10]value1:Event1, [2;10]value2:String, [3;10]value3: u32), 
        method_ids([2]echo_string, [3]no_reply),
        method_ids([5]echo_struct)
    )]
    #[async_trait]
    pub trait EchoServer {
        fn echo_int(&self, value: i32) -> Result<i32, EchoError>;
        async fn echo_string(&self, value: String) -> Result<String, EchoError>;
        fn no_reply(&self, value: Field1);
        fn echo_u64(&self, value: u64) -> Result<u64, EchoError>;
        fn echo_struct(&self, value : Field1) -> Result<Field1, EchoError>;
    }

尽管它的实现还非常早期,但我决定将其公开。

依赖关系

~13–26MB
~384K SLoC