asyncapi / asyncapi/cli

[FEATURE] Reduce number of dependencies and install size (v2.17 needs 1700 dependencies, takes 1.7Gb of space)

Open
#1,752 22 comments 3 reactions 0 assignees View on GitHub
enhancement stale
Dominant language
TypeScript
Stars
272
Forks
375
Avg merge
3h 22m
Merged PRs (30d)
8

Description

### Why do we need this improvement?

The `@asyncapi/cli` tool (v2.17.0) requires 1700 additional packages and occupies about 1.7Gb of space on install.

This provides a significant barrier to use within more controlled environments, as the auditing and review of the dependencies is completely impractical.

It also has a significant impact on install size, application performance, and even tool choice.

For example, I'm unable to install this on some machines as they simply don't have enough RAM available to complete the installation without special overrides.

### How will this change help?

Reducing the number of dependencies significantly would make this tool a much more attractive option, and likely will reduce the maintenance burden of keeping the dependencies up to date.

It would also increase accessibility to the package.

### Screenshots

See attachment for the current result of running `npm install @asyncapi/cli` in a completely clean directory:
[dependencies.txt](https://github.com/user-attachments/files/19578086/dependencies.txt)

### How could it be implemented/designed?

Some related discussion seems to be in #1657, #1707 and #1703 (these all list identifying and removing redundant dependencies and imports)

1. Review direct dependencies and determine which are not providing significant features and might be suitable to inline/reimplement.
2. Review heavy-weight dependencies to evaluate alternative tools or alternative approaches that don't require the massive dependency tree

### 🚧 Breaking changes

Yes

### 👀 Have you checked for similar open issues?

- [x] I checked and didn't find a similar issue

### 🏢 Have you read the Contributing Guidelines?

- [x] I have read the [Contributing Guidelines](https://github.com/asyncapi/.github/blob/master/CONTRIBUTING.md)

### Are you willing to work on this issue?

Yes I am willing to submit a PR!

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the @asyncapi/cli dependency tree and the related discussions in issues #1657, #1707, and #1703. Evaluate direct and heavy dependencies for removal or alternatives, then verify that installation uses substantially fewer packages and less than the reported 1.7GB while preserving the CLI's features; the issue does not define a target reduction or name specific files or tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
node.js, typescript
Domain
cli, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.