Tars IDL 定义文件转换工具
Go to file
2020-07-07 14:10:53 +08:00
bin Support JSON_VERSION and update linux & mac bin file 2020-07-07 14:10:53 +08:00
include update to new tars-version 2020-03-15 17:40:18 +08:00
src Support JSON_VERSION and update linux & mac bin file 2020-07-07 14:10:53 +08:00
third_partly add strptime for windows 2020-03-15 18:10:48 +08:00
CMakeLists.txt Support JSON_VERSION and update linux & mac bin file 2020-07-07 14:10:53 +08:00
LICENSE Initial commit 2018-07-27 12:31:02 +08:00
README.md update doc 2020-02-06 21:51:00 +08:00
README.zh.md update doc 2020-02-06 21:51:00 +08:00

Tars2Node

tars2node can convert the Tars IDL definition file to the version used by the JavaScript language, combined with the @tars/stream module to perform codec operations.

If you have Tars RPC requirements, you can call it in conjunction with the @tars/rpc module.

Usage

Just use the tars2node precompiler in the build directory (Linux platform).

tars2node [OPTIONS] tarsfile

options

Options Functions
--stream-path = [DIRECTORY] Specify the codec module name, the default is @tars/stream.
--rpc-path = [DIRECTORY] Specify the RPC module name. The default is @tars/rpc.
--allow-reserved-namespace Whether to allow tars as a namespace (because this namespace is mainly used for tars file definitions for framework services).
--dir = [DIRECTORY] Output directory for generated files.
--relative Limits all .tars files to look in the current directory.
--tarsBase = [DIRECTORY] Specify the search directory for .tars files.
--r Convert nested .tars files.
--r-minimal Reduce dependent files and remove unnecessary members.
--r-reserved Members to keep when thinning dependent files.
--client Generate the calling class code for the client.
--server Generate server-side framework code.
--ts Turning on this option will only generate TypeScript (.ts) code.
--dts Append a TypeScript description file (.d.ts) when generating.
--long-type = [number string
--string-binary-encoding When you encounter character encoding problems or need to access the original data, turn on this option to use <buffer > to store <string >.
--enum-reverse-mappings Output code <enum > supports reverse mapping of enum values to enum names.
--optimize = [0 | s] Optimize the output code size. The default is 0 (that is, not optimized).

Examples

tars2node Protocol.tars

The above command will convert the constants, enumerations, and structures defined in the Protocol.tars file to generate ProtocolTars.js for encoding and decoding. For usage, please refer to the @tars/stream module documentation.

tars2node Protocol.tars --client

The above command will convert the data types such as constant, enumeration value, structure defined in the file, and convert the interface description section into a Tars RPC client interface file, and finally generate ProtocolProxy.js for Used by the caller. For usage, please refer to @tars/rpc module documentation.

tars2node Protocol.tars --server

The above command will convert data types such as constant, enumeration value, struct defined in the file, and convert the interface description section into a Tars RPC server interface file, and finally generate Protocol.js and ProtocolImp.js is used by the service provider.
Developers do not need to change Protocol.js, they only need to continue to improve the specific functions in the ProtocolImp.js implementation file to provide services as Tars RPC server. For usage, please refer to @tars/rpc module documentation.

Compile from source

  1. Install build-essential for the corresponding platform
  2. Install CMake
  3. Execute cmake ../ && make in the source build directory