Tars IDL 定义文件转换工具
Go to file
2019-05-29 14:35:10 +08:00
build version: 20190529 2019-05-29 14:35:10 +08:00
include version: 20190108 2019-01-09 11:45:21 +08:00
src version: 20190529 2019-05-29 14:35:10 +08:00
third_partly version: 20180713 2018-07-27 12:33:14 +08:00
CMakeLists.txt version: 20190529 2019-05-29 14:35:10 +08:00
LICENSE Initial commit 2018-07-27 12:31:02 +08:00
README.md version: 20190509 2019-05-09 19:10:02 +08:00

Tars2Node

tars2node 可以将 Tars IDL 定义文件转换为 JavaScript 语言所使用的版本,结合 @tars/stream 模块执行编解码操作。

如您有 Tars RPC 需求可结合 @tars/rpc 模块进行调用。

用法

直接使用 build 目录中的 tars2node 预编译程序即可Linux 平台)。

tars2node [OPTIONS] tarsfile

选项

选项 作用
--stream-path=[DIRECTORY] 指定编解码模块名称,默认为 @tars/stream。
--rpc-path=[DIRECTORY] 指定 RPC 模块名称,默认为 @tars/rpc。
--allow-reserved-namespace 是否允许 tars 作为命名空间(因为此命名空间主要用于框架服务的 tars 文件定义)。
--dir=[DIRECTORY] 生成文件的输出目录。
--relative 限定所有的 .tars 文件都在当前目录寻找。
--tarsBase=[DIRECTORY] 指定 .tars 文件的搜索目录。
--r 转换嵌套的 .tars 文件。
--r-minimal 精简依赖文件,移除非必须成员。
--r-reserved 精简依赖文件时需保留的成员。
--client 生成客户端的调用类代码。
--server 生成服务端的框架代码。
--ts 打开此选项将后将只生成 TypeScript (.ts) 代码。
--dts 生成时附加 TypeScript 描述文件(.d.ts
--long-type=[number string
--string-binary-encoding 遇到字符编码问题或需对原始数据进行存取时,打开此选项使用 <buffer> 存储 <string>。
--enum-reverse-mappings 输出代码 <enum> 支持枚举值到枚举名的反向映射 。
--optimize=[0|s] 优化输出代码大小,默认为 0也就是不优化

例子

tars2node Protocol.tars

上述命令将转换 Protocol.tars 文件中定义的 常量枚举结构体 等数据类型生成 ProtocolTars.js 供编解码使用。 使用方法请参考 @tars/stream 模块说明文档。

tars2node Protocol.tars --client

上述命令将转换文件中定义的 常量枚举值结构体 等数据类型,并将 interface 描述段转换为 Tars RPC 客户端接口文件,最终生成 ProtocolProxy.js 供调用方使用。 使用方法请参考 @tars/rpc 模块说明文档。

tars2node Protocol.tars --server

上述命令将转换文件中定义的 常量枚举值结构体 等数据类型,并将 interface 描述段转换为 Tars RPC 服务端接口文件,最终生成 Protocol.js 以及 ProtocolImp.js 供服务提供方使用。 开发者无需改动 Protocol.js,只需要继续完善 ProtocolImp.js 实现文件中具体的函数,即可作为 Tars RPC 服务端提供服务。 使用方法请参考 @tars/rpc 模块说明文档。

从源码编译

  1. 安装对应平台的 build-essential
  2. 安装 CMake
  3. 在源码 build 目录下执行 cmake ../ && make