3.6 KiB
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
- Install build-essential for the corresponding platform
- Install CMake
- Execute
cmake ../ && make
in the source build directory