All Projects → imqueue → cli

imqueue / cli

Licence: ISC license
Command Line Interface for @imqueue

Programming Languages

typescript
32286 projects
shell
77523 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to cli

rpc
RPC-like client-service implementation over messaging queue
Stars: ✭ 26 (+30%)
Mutual labels:  rpc, message-queue, rpc-client, rpc-service, redis-queue, rpc-over-message-queue
Hprose Php
Hprose is a cross-language RPC. This project is Hprose 3.0 for PHP
Stars: ✭ 1,952 (+9660%)
Mutual labels:  rpc, rpc-client, rpc-service
Hprose Js
Hprose is a cross-language RPC. This project is Hprose 2.0 RPC for JavaScript
Stars: ✭ 133 (+565%)
Mutual labels:  rpc, rpc-client
Autocser
AutoCSer is a high-performance RPC framework. AutoCSer 是一个以高效率为目标向导的整体开发框架。主要包括 TCP 接口服务框架、TCP 函数服务框架、远程表达式链组件、前后端一体 WEB 视图框架、ORM 内存索引缓存框架、日志流内存数据库缓存组件、消息队列组件、二进制 / JSON / XML 数据序列化 等一系列无缝集成的高性能组件。
Stars: ✭ 140 (+600%)
Mutual labels:  rpc, message-queue
Advanced Java
😮 Core Interview Questions & Answers For Experienced Java(Backend) Developers | 互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识
Stars: ✭ 59,142 (+295610%)
Mutual labels:  rpc, message-queue
Multirpc
A Discord rich presence manager app with a cool GUI and support for custom status and multiple profiles
Stars: ✭ 94 (+370%)
Mutual labels:  rpc, rpc-client
Hprose Delphi
Hprose is a cross-language RPC. This project is Hprose 2.0 for Delphi and FreePascal
Stars: ✭ 100 (+400%)
Mutual labels:  rpc, rpc-client
Hprose Html5
Hprose is a cross-language RPC. This project is Hprose 2.0 Client for HTML5
Stars: ✭ 237 (+1085%)
Mutual labels:  rpc, rpc-client
Hprose Java
Hprose is a cross-language RPC. This project is Hprose 2.0 for Java
Stars: ✭ 542 (+2610%)
Mutual labels:  rpc, rpc-client
hrpc
Common interface definition based rpc implementation
Stars: ✭ 21 (+5%)
Mutual labels:  rpc, rpc-client
hprose-as3
Hprose for ActionScript 3.0
Stars: ✭ 18 (-10%)
Mutual labels:  rpc, rpc-client
Rpcx Java
rpcx implementation in Java for server side and client side
Stars: ✭ 71 (+255%)
Mutual labels:  rpc, rpc-client
Hprose Golang
Hprose is a cross-language RPC. This project is Hprose for Golang.
Stars: ✭ 1,143 (+5615%)
Mutual labels:  rpc, rpc-client
Hprose Objc
Hprose is a cross-language RPC. This project is Hprose 2.0 Client for Objective-C
Stars: ✭ 130 (+550%)
Mutual labels:  rpc, rpc-client
Kubemq
KubeMQ is Enterprise-grade message broker native for Docker and Kubernetes
Stars: ✭ 58 (+190%)
Mutual labels:  rpc, message-queue
near-jsonrpc-client-rs
Lower-level API for interfacing with the NEAR Protocol via JSONRPC.
Stars: ✭ 32 (+60%)
Mutual labels:  rpc, rpc-client
Hprose Nodejs
Hprose is a cross-language RPC. This project is Hprose 2.0 for Node.js
Stars: ✭ 297 (+1385%)
Mutual labels:  rpc, rpc-client
Rpc Websockets
JSON-RPC 2.0 implementation over WebSockets for Node.js and JavaScript/TypeScript
Stars: ✭ 344 (+1620%)
Mutual labels:  rpc, rpc-client
core
Simple JSON-based messaging queue for inter service communication
Stars: ✭ 28 (+40%)
Mutual labels:  message-queue, redis-queue
orkid-node
Reliable and modern Redis Streams based task queue for Node.js 🤖
Stars: ✭ 61 (+205%)
Mutual labels:  message-queue, redis-queue

I Message Queue CLI (@imqueue/cli)

Build Status codebeat badge Coverage Status David David Known Vulnerabilities License

Why?

Frees you from writing boilerplate when making @imqueue services.

Install

As simple as:

npm i -g @imqueue/cli

Usage

To start simply run after install:

imq

IMQ-CLI first of all provides a way to manage your IMQ-RPC based services and clients based on desired configuration.

IMQ Command Line Interface
Version: 1.0.0-dev2

Usage: imq <command>

Commands:
  imq client       Manage IMQ client
  imq completions  Generates completions script for your shell
  imq config       Manage IMQ CLI settings
  imq service      Manage IMQ service

Options:
  --version  Show version number                                       [boolean]
  --help     Show help                                                 [boolean]

Service Management

The main essence of this command-line tool is to provide simple way of creating services based on boilerplate templates.

Currently it supports a single template default, which provides a way to create a service, targeted to be developed under GitHub version control system, integrated with TravisCI and docker builds. By simply running a single command it will create a ready-to-run service and all you will need is to write it's implementation.

It is recommended to run imq config init right after installation of this command-line tool and before running imq service create commands.

imq service create [name] [path]

Creates new service package with the given service name under given path.

Options:
  --version               Show version number                          [boolean]
  --help                  Show help                                    [boolean]
  -a, --author            Service author full name (person or organization)
  -e, --email             Service author's contact email
  -g, --use-git           Turns on automatic git repo creation         [boolean]
  -u, --github-namespace  GitHub namespace (usually user name or organization
                          name)
  --no-install            Do not install npm packages automatically on service
                          creation                                     [boolean]
  -V, --service-version   Initial service version             [default: "1.0.0"]
  -H, --homepage          Homepage URL for service, if required
  -B, --bugs-url          Bugs url for service, if required
  -l, --license           License for created service, should be either license
                          name in SPDX format or path to a custom license file
  -t, --template          Template used to create service (should be either
                          template name, git url or file system directory)
  -d, --description       Service description
  -n, --node-versions     Node version tags to use for builds, separated by
                          comma if multiple. First one will be used for docker
                          build, if dockerize option enabled.
  -D, --dockerize         Enable service dockerization with CI builds  [boolean]
  -L, --node-docker-tag   Node docker tag to use as base docker image for docker
                          builds
  -N, --docker-namespace  Docker hub namespace
  -T, --github-token      GitHub auth token
  -p, --private           Service repository will be private at GitHub [boolean]
  --name                  Service name to create with
  --path                  Path to directory where service will be generated to

Client Management

Generating Clients:

To generate a client related service should be started, otherwise generation will fail.

This command will expect service name as mandatory option.

Usage:

imq client generate <name> [path]

Generates IMQ-RPC client for a specified service

Options:
  --version        Show version number                                 [boolean]
  --help           Show help                                           [boolean]
  -o, --overwrite  Overwrite existing client without prompt            [boolean]
  --path           Directory where client file should be placed   [default: "."]

Managing IMQ-CLI Configuration

IMQ-CLI can be used with a pre-configured options to shorten commands usage. Global base configurations options usually stored in ~/.imq/config.json file. This file can be managed manually, but it is recommended to use special command:

imq config init

which will guide you through configuration process.

There are also useful commands to retrieve and set specific configuration values, stored in a configuration file:

imq config get

will print all upset configuration options in option = value format.

imq config get [option_name]

will print a single requested option value.

imq config set [option_name] [new_value]

will set requested option to a given new value.

IMQ-CLI Completions For Your Shell

IMQ-CLI supports completions for your shell. It provide a way to generate completions script and add it to your shell configuration, as far as allows to remove previously added completion script just running the corresponding commands:

imq completions on
imq completions off

Currently it supports both zsh and bash shells.

Controlling Local Services

For comfortable local development @imqueue provides couple of useful command-line tools, allowing developers to manage local set of services. Like starting/stopping/restarting them with a single command line or managing services logs.

Please, note, there are many different ways to manage local services. You may consider pulling and starting pre-build docker images, or even use docker compose for managing them, or may utilize such tools as vagrant to organize local environment setup. BTW, you may suggest to run your services locally on host OS, which is really useful scenario during development and the tools below will dramatically improve your experience, especially, when the number of services to manage significant.

imqctl

Usage: imqctl <command> [-p path] [-s services] [-hu]
  <command> is one of start|stop|restart
  [-p path] - path to a directory with services repositories, by default is 
              current directory
  [-s services] - comma-separated services list (repositories names),
                  if not passed will scan path for a services presence
  [-u] - if passed service will be updated using 'git pull' before start
  [-c] - calm down services start - wait before staring next
  [-v] - verbose mode, shows command execution time
  [-h] - print this usage information

imqlog

Usage: ./bin/log.sh [-c] [service1, ...serviceN]
  [service1, ...serviceN] - list of service repositories directories names to 
                            combile logs for, if omitted all existing logs are
                            combined.
  [-c] - clean previous logs
  [-h] - print this usage information

License

ISC

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].