{"id":16418891,"url":"https://github.com/oleoneto/microkit","last_synced_at":"2025-03-21T03:32:42.656Z","repository":{"id":40991227,"uuid":"300166222","full_name":"oleoneto/microkit","owner":"oleoneto","description":"Microservices toolkit 🧰","archived":false,"fork":false,"pushed_at":"2024-02-03T03:54:51.000Z","size":1475,"stargazers_count":3,"open_issues_count":19,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-19T16:12:55.430Z","etag":null,"topics":["audio","kafka","microservices-toolkit","node-media-server","rtmp","rtp","s3-buckets"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oleoneto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-01T06:09:21.000Z","updated_at":"2024-05-14T06:25:08.834Z","dependencies_parsed_at":"2023-02-13T04:45:54.310Z","dependency_job_id":"8fc94c7b-43e0-4918-ab08-f89a6c04fab6","html_url":"https://github.com/oleoneto/microkit","commit_stats":{"total_commits":49,"total_committers":4,"mean_commits":12.25,"dds":0.4693877551020408,"last_synced_commit":"aee7c0874da923e95ee7da5e211bd128966c1c9f"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oleoneto%2Fmicrokit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oleoneto%2Fmicrokit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oleoneto%2Fmicrokit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oleoneto%2Fmicrokit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oleoneto","download_url":"https://codeload.github.com/oleoneto/microkit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243878477,"owners_count":20362433,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","kafka","microservices-toolkit","node-media-server","rtmp","rtp","s3-buckets"],"created_at":"2024-10-11T07:15:17.651Z","updated_at":"2025-03-21T03:32:42.243Z","avatar_url":"https://github.com/oleoneto.png","language":"TypeScript","readme":"microkit\n========\n\nMicroservices toolkit\n\n[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io)\n[![Version](https://img.shields.io/npm/v/microkit.svg)](https://npmjs.org/package/microkit)\n[![Downloads/week](https://img.shields.io/npm/dw/microkit.svg)](https://npmjs.org/package/microkit)\n[![License](https://img.shields.io/npm/l/microkit.svg)](https://github.com/oleoneto/microkit/blob/master/package.json)\n\n\u003c!-- toc --\u003e\n* [Usage](#usage)\n* [Commands](#commands)\n\u003c!-- tocstop --\u003e\n# Usage\n\u003c!-- usage --\u003e\n```sh-session\n$ npm install -g @oleoneto/microkit\n$ microkit COMMAND\nrunning command...\n$ microkit (-v|--version|version)\n@oleoneto/microkit/0.2.5 darwin-x64 node-v12.20.1\n$ microkit --help [COMMAND]\nUSAGE\n  $ microkit COMMAND\n...\n```\n\u003c!-- usagestop --\u003e\n# Commands\n\u003c!-- commands --\u003e\n* [`microkit help [COMMAND]`](#microkit-help-command)\n* [`microkit utils`](#microkit-utils)\n* [`microkit utils:audio:info PATH`](#microkit-utilsaudioinfo-path)\n* [`microkit utils:call DIALSTRING`](#microkit-utilscall-dialstring)\n* [`microkit utils:db`](#microkit-utilsdb)\n* [`microkit utils:db:read`](#microkit-utilsdbread)\n* [`microkit utils:kafka`](#microkit-utilskafka)\n* [`microkit utils:kafka:listen`](#microkit-utilskafkalisten)\n* [`microkit utils:kafka:produce`](#microkit-utilskafkaproduce)\n* [`microkit utils:rtmp`](#microkit-utilsrtmp)\n* [`microkit utils:rtp`](#microkit-utilsrtp)\n* [`microkit utils:s3`](#microkit-utilss3)\n* [`microkit utils:s3:download KEY`](#microkit-utilss3download-key)\n\n## `microkit help [COMMAND]`\n\ndisplay help for microkit\n\n```\nUSAGE\n  $ microkit help [COMMAND]\n\nARGUMENTS\n  COMMAND  command to show help for\n\nOPTIONS\n  --all  see all commands in CLI\n```\n\n_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v2.2.3/src/commands/help.ts)_\n\n## `microkit utils`\n\ndeveloper utilities\n\n```\nUSAGE\n  $ microkit utils\n```\n\n_See code: [src/commands/utils/index.ts](https://github.com/oleoneto/microkit/blob/v0.2.5/src/commands/utils/index.ts)_\n\n## `microkit utils:audio:info PATH`\n\ncheck the information of an audio file\n\n```\nUSAGE\n  $ microkit utils:audio:info PATH\n\nOPTIONS\n  -x, --extended          show extra columns\n  --columns=columns       only show provided columns (comma-separated)\n  --csv                   output is csv format [alias: --output=csv]\n  --filter=filter         filter property by partial string matching, ex: name=foo\n  --no-header             hide table header from output\n  --no-truncate           do not truncate output to fit screen\n  --output=csv|json|yaml  output in a more machine friendly format\n  --sort=sort             property to sort by (prepend '-' for descending)\n```\n\n_See code: [src/commands/utils/audio/info.ts](https://github.com/oleoneto/microkit/blob/v0.2.5/src/commands/utils/audio/info.ts)_\n\n## `microkit utils:call DIALSTRING`\n\nplace a call using an asterisk server\n\n```\nUSAGE\n  $ microkit utils:call DIALSTRING\n\nOPTIONS\n  -a, --address=address                          (required) [default: http://127.0.0.1:8088] asterisk server address\n  -e, --external-media-host=external-media-host  RTP listening server address (external host)\n  -f, --format=(ulaw|slin16)                     [default: ulaw] audio format\n  -m, --mode=mode                                [default: SIP] mode\n  -p, --password=password                        (required) [default: asterisk] asterisk password\n  -u, --username=username                        (required) [default: asterisk] asterisk user\n  --docker                                       set this if asterisk server is running inside a docker container\n  --enable-external-media                        enable external media [asterisk 16+]\n\nEXAMPLES\n  $ microkit utils:call 6001\n  $ microkit utils:call 6001 --mode SIP\n  $ microkit utils:call 6001 --mode=SIP --address=http://127.0.0.1:8088 --username=asterisk\n  $ microkit utils:call 6001 --enable-external_media --docker\n  $ microkit utils:call 6001 --enable-external-media --external-media-host=http://localhost:5554\n  $ microkit utils:call 6001 --enable-external-media --external-media-host=http://localhost:5554 -f=slin16\n```\n\n_See code: [src/commands/utils/call/index.ts](https://github.com/oleoneto/microkit/blob/v0.2.5/src/commands/utils/call/index.ts)_\n\n## `microkit utils:db`\n\ninteract with SQL databases (only Postgres supported)\n\n```\nUSAGE\n  $ microkit utils:db\n```\n\n_See code: [src/commands/utils/db/index.ts](https://github.com/oleoneto/microkit/blob/v0.2.5/src/commands/utils/db/index.ts)_\n\n## `microkit utils:db:read`\n\nread from a database table\n\n```\nUSAGE\n  $ microkit utils:db:read\n\nOPTIONS\n  -x, --extended               show extra columns\n  --columns=columns            only show provided columns (comma-separated)\n  --csv                        output is csv format [alias: --output=csv]\n  --database=database          database name\n  --database-url=database-url  database url\n  --filter=filter              filter property by partial string matching, ex: name=foo\n  --limit=limit                [default: 100] sql select limit\n  --no-header                  hide table header from output\n  --no-truncate                do not truncate output to fit screen\n  --offset=offset              sql select offset\n  --output=csv|json|yaml       output in a more machine friendly format\n  --sort=sort                  property to sort by (prepend '-' for descending)\n  --table=table                (required) database table\n\nEXAMPLES\n  $ microkit db:read --table friends\n  $ microkit db:read --table friends --database people\n  $ microkit db:read --table friends --limit 2\n  $ microkit db:read --table friends --limit 10 --offset 2\n```\n\n_See code: [src/commands/utils/db/read.ts](https://github.com/oleoneto/microkit/blob/v0.2.5/src/commands/utils/db/read.ts)_\n\n## `microkit utils:kafka`\n\nproduce and/or consume kafka messages\n\n```\nUSAGE\n  $ microkit utils:kafka\n```\n\n_See code: [src/commands/utils/kafka/index.ts](https://github.com/oleoneto/microkit/blob/v0.2.5/src/commands/utils/kafka/index.ts)_\n\n## `microkit utils:kafka:listen`\n\nlisten for or consume Kafka events\n\n```\nUSAGE\n  $ microkit utils:kafka:listen\n\nOPTIONS\n  -g, --groupId=groupId  [default: microkit] kafka consumer group identifier\n  -t, --topics=topics    (required) kafka topic\n  --host=host            address of kafka host [i.e. https://example.com:9094]\n  --keys=keys            kafka keys to watch for\n  --listen-once          stop listening once a message is received\n  --mode=(watch|ignore)  determine whether to care about or ignore these keys\n  --total=total          maximum number of messages to consume\n\nEXAMPLES\n  $ microkit utils:kafka:listen --topics feed\n  $ microkit utils:kafka:listen --topics feed registrations\n  $ microkit utils:kafka:listen --topics feed --listen-once\n  $ microkit utils:kafka:listen --topics feed --actions like comment --mode watch\n  $ microkit utils:kafka:listen --topics feed --actions repost --mode --ignore\n```\n\n_See code: [src/commands/utils/kafka/listen.ts](https://github.com/oleoneto/microkit/blob/v0.2.5/src/commands/utils/kafka/listen.ts)_\n\n## `microkit utils:kafka:produce`\n\nproduce kafka messages\n\n```\nUSAGE\n  $ microkit utils:kafka:produce\n\nOPTIONS\n  -a, --action=action  kafka topic action\n  -o, --object=object  (required) [default: {\"origin\": \"microkit\"}] payload in JSON format\n  -t, --topic=topic    (required) kafka topic\n  --host=host          address of kafka host [i.e. https://example.com:9094]\n  --total=total        [default: 1] number of messages to send\n\nEXAMPLES\n  $ microkit utils:kafka:produce --topic feed\n  $ microkit utils:kafka:produce --topic feed --total 10\n  $ microkit utils:kafka:produce --topic feed --object '{\"userId\": 8897, \"action\": \"like\", \"objectId\": 42}'\n```\n\n_See code: [src/commands/utils/kafka/produce.ts](https://github.com/oleoneto/microkit/blob/v0.2.5/src/commands/utils/kafka/produce.ts)_\n\n## `microkit utils:rtmp`\n\nstarts an RTMP server (video streaming)\n\n```\nUSAGE\n  $ microkit utils:rtmp\n\nOPTIONS\n  --chunk-size=chunk-size      [default: 60000] RTMP server chunk size\n  --gop-cache                  RTMP server cache\n  --http-port=http-port        [default: 9700] HTTP port [affects playback and admin dashboard]\n  --ping=ping                  [default: 30] RTMP server ping\n  --ping-timeout=ping-timeout  [default: 60] RTMP server ping-timeout in seconds\n  --port=port                  [default: 1935] RTMP server port\n  --record                     capture/record RTMP stream into a file\n  --recording-format=(mkv)     [default: mkv] recording format\n  --source-encoding=(flv)      [default: flv] RTMP video source encoding\n\nEXAMPLES\n  $ microkit utils:rtmp\n  $ microkit utils:rtmp --port=1935 --http-port=8090\n  $ microkit utils:rtmp --record --recording-format=mkv\n```\n\n_See code: [src/commands/utils/rtmp/index.ts](https://github.com/oleoneto/microkit/blob/v0.2.5/src/commands/utils/rtmp/index.ts)_\n\n## `microkit utils:rtp`\n\nstarts an RTP server\n\n```\nUSAGE\n  $ microkit utils:rtp\n\nOPTIONS\n  -e, --engine=(aws|deepgram)  transcriber engine\n  -p, --port=port              [default: 5554] RTP client port\n  -t, --transcribe             enables audio transcription of RTP traffic\n  --log                        log RTP server messages\n  --show-info                  show RTP packet info\n  --show-packets               show RTP packets\n\nEXAMPLES\n  $ microkit utils:rtp\n  $ microkit utils:rtp --port 5554\n  $ microkit utils:rtp --show-packets=true\n```\n\n_See code: [src/commands/utils/rtp/index.ts](https://github.com/oleoneto/microkit/blob/v0.2.5/src/commands/utils/rtp/index.ts)_\n\n## `microkit utils:s3`\n\ninteract with S3 buckets\n\n```\nUSAGE\n  $ microkit utils:s3\n```\n\n_See code: [src/commands/utils/s3/index.ts](https://github.com/oleoneto/microkit/blob/v0.2.5/src/commands/utils/s3/index.ts)_\n\n## `microkit utils:s3:download KEY`\n\ndownload file from S3 bucket\n\n```\nUSAGE\n  $ microkit utils:s3:download KEY\n\nOPTIONS\n  -b, --bucket=bucket                      (required) name of S3 bucket\n  -l, --downloadLocation=downloadLocation  path where the downloads should be saved\n\nEXAMPLES\n  $ microkit utils:s3:download audio.mp3 --bucket my-photos\n  $ microkit utils:s3:download audio.mp3 --bucket my-photos -l ~/Downloads\n```\n\n_See code: [src/commands/utils/s3/download.ts](https://github.com/oleoneto/microkit/blob/v0.2.5/src/commands/utils/s3/download.ts)_\n\u003c!-- commandsstop --\u003e\n* [`microkit help [COMMAND]`](#microkit-help-command)\n\n## `microkit help [COMMAND]`\n\ndisplay help for microkit\n\n```\nUSAGE\n  $ microkit help [COMMAND]\n\nARGUMENTS\n  COMMAND  command to show help for\n\nOPTIONS\n  --all  see all commands in CLI\n```\n\n_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v2.2.3/src/commands/help.ts)_\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foleoneto%2Fmicrokit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foleoneto%2Fmicrokit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foleoneto%2Fmicrokit/lists"}