@open-rpc/generator-client

<center> <span> <img alt="CircleCI branch" src="https://img.shields.io/circleci/project/github/open-rpc/generator-client/master.svg"> <img src="https://codecov.io/gh/open-rpc/generator-client/branch/master/graph/badge.svg" /> <img alt="Depen

Usage no npm install needed!

<script type="module">
  import openRpcGeneratorClient from 'https://cdn.skypack.dev/@open-rpc/generator-client';
</script>

README

OpenRPC Generator: Client

CircleCI branch Dependabot status Chat on Discord npm GitHub release GitHub commits since latest release js badge rs badge

Multi-language client generator tool for open-rpc APIs. Developers generate a client by passing an OpenRPC Document to this tool which generates a client based on the supported language templates.

overview diagram

Supported client languages:

Install

$ npm install -g @open-rpc/generator-client

Usage

$ open-rpc-generator-client --help
Usage: open-rpc-generator-client [options]

Options:
  -v, --version                      output the version number
  -d, --document [openrpcDocument]   JSON string or a Path/Url pointing to an open rpc schema (default: "./openrpc.json")
  -o, --outputDir [outputDirectory]  output directory that the clients will be generated into (default: "./")
  --ts-name [packageName]            Name that will go in the package.json for the typescript client (default: "template-client")
  --rs-name [crateName]              Name that will go in the crate name for the rust client (default: "template-client")
  -h, --help                         output usage information

Generating a Client

$ open-rpc-generator-client \
  -d https://raw.githubusercontent.com/open-rpc/examples/master/service-descriptions/petstore-openrpc.json

Using the open-rpc-generator-client command, then passing an example OpenRPC document petstore-openrpc.json in the directory of Petstore.

The generator client tool creates the client directories by language. E.i: rust/ for generated Rust client and typescript for generated Typescript (JavaScript) client. A developer can choose which client language they want to use from here.

Resources