SureMoonNet

command module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 16, 2022 License: MIT Imports: 4 Imported by: 0

README

SureMoonNet

sure_moon net 基于proto的跨语言RPC库

本库的使用步骤: --使用ProtossGenius/smntools中提供的smnrpc-autocode,只需要配置一个json文件就可以生成需要的代码(smnrpc-autocode -example提供一份示例配置)。

--以下步骤参考makefile中的test--
1.声明一个Go语言语法的接口,参考:./src/rpc_itf/HelloWorld.go
2.运行itf2proto工具为上面步骤定义的接口生成proto文件
3.为proto生成目标语言代码
4.运行itf2rpc为接口生成rpc的核心代码
5.服务端部分只要实现定义的接口就可以了(如果是跨语言的话应该生成目标语言的接口然后实现),客户端则像是使用本地方
法一样不需要做任何多余的事情。(参考 ./src/com.suremoon.net/test/smn_net_rpc/test.go)

原理:自动代码生成,为接口的参数和返回自动生成协议文件,然后据此生成rpc实现的具体代码,根据这个原理可以推想本库能跨 越任何面向对象的语言。

需要的工作:

1.目前只写了go语言版本(cpp版本见ProtossGenius/smn-cpp)的代码生成,需要其他语言的生成。
2.接口的解析应该可以参考go语言的官方实现,不过写这些东西的时候心情不是很好,所以懒得看。
3.因为没有怎么用,所以大概会有未知的bug,欢迎为本库添加单元测试。
4.使用中发现bug可以添加issues。

以下是简单的目录结构。(文档已过期) |--basis 库的底层代码(通用代码),像是Go接口的解析这样的功能放在了这里,因为写这里代码的时候心情不是很好, | 代码的不可读性很高,一般没有发现bug 的话不建议为难自己去读这里。 |--main 可执行代码,以上提到的工具应当都在这里 |--smn 本库中比较顶层一些的代码,不是各处通用的代码都会放到这里 |--test 这是比较诡异的一个文件夹,当我有不清楚的地方就会在这里尝试,并不是通常意义上的单元测试, | 在写完一个功能的时候也会在这里尝试它是否可用,基本上算是一个回收站:有些东西有用,有些东西没用。 |--unit 单元测试相关的代码,只有聪明人才能看得到,如果将来要添加单元测试的话请放到这里。

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
basis
smn_exec
Package smn_exec provides ...
Package smn_exec provides ...
main
pb
test
kcp
rsa

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL