CLI to work with your AsyncAPI files. Currently under development, we are working to bring more features.
To run @asyncapi/cli
, you'll need Node.js >=v10
Run this terminal command to check your Node.js version:
node -v
If you don't have Node.js installed or NPM, simply install both via package manager
Install the CLI globaly on your system run CLI it from anywhere:
npm install -g @asyncapi/cli
You can install this CLI using brew
package manager.
# Install brew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install AsyncAPI CLI
brew install asyncapi
Each release of CLI produces a MacOS dedicated pkg
file that enables you to install this CLI as MacOS application.
# Download latest release. To download specific release, your link should look similar to https://github.com/asyncapi/cli/releases/download/v0.13.0/asyncapi.pkg. All releases are listed in https://github.com/asyncapi/cli/releases
curl -OL https://github.com/asyncapi/cli/releases/latest/download/asyncapi.pkg
# Install AsyncAPI CLI
sudo installer -pkg asyncapi.pkg -target /
You can install this CLI using dpkg
, a package manager for debian.
# Download latest release. To download specific release, your link should look similar to https://github.com/asyncapi/cli/releases/download/v0.13.0/asyncapi.deb. All releases are listed in https://github.com/asyncapi/cli/releases
curl -OL https://github.com/asyncapi/cli/releases/latest/download/asyncapi.deb
# Install AsyncAPI CLI
sudo dpkg -i asyncapi.deb
You can install this CLI using the archive(tar.gz
) file.
# Download latest release. To download specific release, your link should look similar to https://github.com/asyncapi/cli/releases/download/v0.13.0/asyncapi.tar.gz. All releases are listed in https://github.com/asyncapi/cli/releases
curl -OL https://github.com/asyncapi/cli/releases/latest/download/asyncapi.tar.gz
# Untar the archive file
tar -xzf asyncapi.tar.gz
The above step will create an asyncapi
directory in the current path.
Create a symlink to run the CLI from anywhere. We will create the symlink in /usr/local/bin
directory since this directory is already in the PATH
.
# cd into the unarchived directory
cd asyncapi
# get the absolute path
pwd
# Create a symlink
ln -s <absolute-path>/bin/asyncapi /usr/local/bin/asyncapi
# The `asyncapi` command should be available to be used
asyncapi
@asyncapi/cli
makes it easier to work with asyncpi files.
We have well-documented help commands so just run:
asyncapi --help
It should print something like:
All in one CLI for all AsyncAPI tools
USAGE
$ asyncapi [COMMAND]
COMMANDS
config access configs
diff find diff between two AsyncAPI files
optimize optimize asyncapi specification file
new creates a new AsyncAPI file
start starts a new local instance of Studio
validate validate an AsyncAPI file
generate generate all kinds of stuff
models generate all the typed models for the message payloads defined in the AsyncAPI file
typescript generate the models for TypeScript
csharp generate the models for C#
golang generate the models for Go
java generate the models for Java
javascript generate the models for JavaScript
dart generate the models for Dart
python generate the models for Python
rust generate the models for Rust
fromTemplate generate whatever you want using templates compatible with AsyncAPI Generator
Read CONTRIBUTING guide.
Follow these steps:
- Clone the repo.
- Run
npm install
to install all the required dependencies - Run
npm run test
to make sure everything is properly set up - Run
npm run build
and thenbin/run
to try new CLI locally
UX developed for the CLI should be compliant with Command Line Interface Guideline
We are following verb + noun
and namespace + noun + [verb]
pattern for making our commands and arguments. For example asyncapi validate <spec-file-path>
and asyncapi config context add <context-name> <spec-file-path>
.
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!