Skip to content

Supercharge Your VTEX IO Workflow with a Lightning-Fast CLI Alternative. Enhance Developer Experience and Boost Productivity.

License

Notifications You must be signed in to change notification settings

rafaelrcamargo/quix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo.png

Quix

Built with rust License

Quix is a CLI, created aiming for the best developer experience with the VTEX IO platform.

Getting startedCommandsInstallationContributingKnown issuesLICENSE

Important

Quix is on the lookout for new project maintainers. I'm not currently working with VTEX, which makes developing and testing the project a bit tricky. 😅

First, to clarify the purpose of this project. As developers, we know the importance of a fast and reliable developer experience. And that's what we are aiming for, to make the VTEX IO developer experience as pleasant as possible.

Note

This CLI is a work in progress, and only a few commands are currently available.

The following commands are available:

⛓️ Link

Links the project to the current workspace.

This command will synchronize the local project with the remote VTEX account you are logged in. (At the moment, the login and use commands are not implemented, use the VTEX IO CLI instead.)

Usage

qx link <FLAGS>

Flags

Flag Description
-c Cleans the project cache before linking.
-q Enables quick linking, skipping steps. 👀
  1. Check the releases page to download the latest version of the CLI.

  2. Then we need to setup the CLI, for an easier setup we have created a script to add the CLI to your PATH environment variable. The setup process goes as follows:

🖥️ Windows

[!WARNING] Tested on version 0.0.0, newer versions are expected to work, but not covered.

git clone https://github.com/rafaelrcamargo/quix
cd quix

cargo run # OR cargo build --release
🍎 MacOS
git clone https://github.com/rafaelrcamargo/quix
cd quix

cargo run # OR cargo build --release
🐧 Linux

[!WARNING] Tested on version 0.0.0, newer versions are expected to work, but not covered.

git clone https://github.com/rafaelrcamargo/quix
cd quix

cargo run # OR cargo build --release

🧮 Improvements

One of the main focuses of this project is performance. We have implemented and documented several benchmarks to help improve the performance of Quix. The following benchmark is available:

📈 Benchmarks

  • 🛑 Minifier

    • Compares the performance of the minifier crate and the VTEX IO Link endpoint, analyzing the performance of raw files and minified files in the initial and subsequent quix link commands.
  • ⚖️ Release + Compression

    • With the search for a small and efficient binary, we have implemented a release script that uses the common cargo commands to build the binary, and then compress it using the UPX tool with reduced the final binary size by ~40% (On Mac).

          File size        Ratio      Format      Name
    --------------------   ------   -----------   -----------
    1990232 ->    786448   39.52%   macho/arm64   quix
    • With this we finish with a binary that weights ~750K, wich is a great improvement from the original ~1.2M, it's a known fact that the Rust compiler generates binaries with a bigger size, but with this we can reduce the size of the binary to a more reasonable size.

    -rwxr-xr-x@ 1 ....  staff   768K ... .. ..:.. ./quix

The following results were obtained using the time utils on Mac OS on a MacBook Air M1.

Time can sound as a weird choice based on the modern standards, but as both of the CLI's keep running in watch mode, the test's were made based on the first sight of the Linked successfully message.

banner.png

On the left, the original VTEX CLI, and on the right, the Quix CLI. (Between tests, the cache was cleared and all apps we're unlinked)
VS Code - Terminal not rendering properly?
That's a known issue, and it's related to the way VS Code handles the terminal. To fix this, just open the settings and add the following line:
{
  ...
  "terminal.integrated.gpuAcceleration": "on"
}

This will enable the GPU acceleration for the terminal, and it will fix the rendering issue. For now this solves the issue, but can get kinda weird with some appearance settings.

Contributions to this project are welcome! If you have any suggestions or improvements, please open an issue or pull request.

This code is licensed under the Apache 2.0 license.

About

Supercharge Your VTEX IO Workflow with a Lightning-Fast CLI Alternative. Enhance Developer Experience and Boost Productivity.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published