Accelerate your command-line tools with seamless daemon execution.
Project details
Speedrunner enhances the performance of command-line tools like aws, gcloud, and eslint by keeping them loaded in a daemon. This innovative solution drastically reduces the start-up time from seconds to mere milliseconds, offering the same output without any complex setup for each tool, making it ideal for efficient development workflows.
speedrunner - Enhancing Command-Line Interface (CLI) Speed for Python, Ruby, PHP, and Node Tools
Command-line tools such as AWS CLI, Azure, GCloud, Ansible, ESLint, and many more, are often hampered by slow startup times due to interpreter initialization and code loading. speedrunner addresses this issue by utilizing a unique daemon process that keeps the execution environment preloaded, resulting in significant performance improvements.
Leverage speedrunner to speed up your CLI calls seamlessly:
srr aws s3 ls # Using any command, without configuration needed
srr python3 -m pytest -q # Running tests through the Python module
def script.sh:
srr speedrunner exec ./script.sh # Execute an entire script with optimized performance
Integration within scripts is simple, with daemons prepping as commands are typed, and tools can be initialized effortlessly:
eval "$(speedrunner activate)" # Activates speedrunner in the current session
eval "$(speedrunner init zsh)" # Initializes in .zshrc for automatic daemon warm-up
Supported on Linux (x86_64 or aarch64) and macOS 11 or later (Intel and Apple Silicon), speedrunner requires only a single binary for installation and utilizes existing interpreters for the various languages supported (Python, Ruby, PHP, Node).
The performance metrics indicate substantial gains across 96 commands tested, with a geometric mean speedup of 5.6x and as much as 10x improvement on several commands, making it an essential tool for users who rely heavily on command-line utilities.
speedrunner offers a powerful solution for optimizing the speed of command-line tools commonly used in development workflows. By preloading execution environments and forking processes, it minimizes startup time while ensuring that the outputs remain consistent with native executions. Discover more about its capabilities and track performance with the comprehensive user guide and performance benchmarks available in the documentation.
Comments
0Start the conversation
Share the first comment.