awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
rbenv avatar

rbenv/rbenv

0
View on GitHub↗
16,710 stars·1,428 forks·Shell·MIT·21 viewsrbenv.org↗

Rbenv

rbenv is a Ruby version manager and shell environment manager designed to install, switch between, and manage multiple versions of the Ruby programming language. It functions as a project runtime isolator and an extensible versioning framework that ensures the correct Ruby binaries are executed based on the current context.

The system uses a shim-based command interception model to resolve the active version before delegating execution to the binary. It allows for locking specific Ruby versions and environment variables to individual directories, ensuring project environment isolation. The architecture is designed for extensibility, allowing users to add custom commands and hooks through a plugin system.

The tool covers a broad range of capabilities including version management, toolchain configuration, and the management of environment variables. It provides mechanisms to automate library setup and isolate dependencies across different installations.

Features

  • Version Managers - Provides a comprehensive system for installing, switching, and managing multiple Ruby runtime versions.
  • Ruby Version Managers - Provides a comprehensive system for installing and managing different versions of the Ruby programming language.
  • Command Interception Shims - Uses proxy mechanisms to dynamically resolve and route command execution to the correct Ruby binary.
  • Runtime Version Switching - Enables switching between different Ruby versions based on global defaults, project files, or shell sessions.
  • Shell Environment Managers - Modifies terminal sessions by injecting environment variables and updating paths to ensure correct binary execution.
  • Per-Project Runtime Assignments - Binds a specific Ruby runtime version to a directory to ensure project-specific environment consistency.
  • Shim-Based Command Interception - Implements a shim-based interception model to execute the correct Ruby binaries and gems without manual path configuration.
  • Environment Isolation - Isolates language runtimes by assigning specific Ruby versions to directories to ensure consistent behavior across projects.
  • Multi-Version Installations - Provides the capability to download and install multiple specific versions of the Ruby runtime.
  • Directory-Based Version Resolution - Determines the active Ruby version by searching for configuration files in the current and parent directories.
  • Isolated Runtime Directories - Installs separate language versions into distinct folders to prevent binary conflicts.
  • Shim Regeneration - Rebuilds proxy executables to ensure the command line interface maps to the latest installed binaries.
  • Command Line Extensions - Provides a framework for defining custom commands and plugins to extend the version manager's functionality.
  • Dependency Isolation Tools - Provides utilities for configuring custom paths to isolate language-specific dependencies (gems) per project.
  • Environment Variable Management - Manages host-level environment variables for both global and project-specific runtime configurations.
  • Environment Variable Configurations - Provides mechanisms to inject runtime settings and configuration parameters via project-specific environment variable files.
  • Shell Environment Injections - Injects logic into the shell session to update environment variables and modify the command search path dynamically.
  • Hook-Based Extension Frameworks - Uses a hook-based architecture to allow plugins to add custom commands and extend environment management.
  • Plugin Extenders - Allows loading custom external libraries at runtime to augment core version management functionality.
  • Plugin Managers - Facilitates the discovery, installation, and management of third-party extensions to add new functionality.
  • Tooling Plugin Systems - Implements an architecture for adding custom tools and commands via external plugin loading.
  • Command Line Utilities - Version management for Ruby environments.

Star history

Star history chart for rbenv/rbenvStar history chart for rbenv/rbenv

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Rbenv

Similar open-source projects, ranked by how many features they share with Rbenv.
  • sstephenson/rbenvsstephenson avatar

    sstephenson/rbenv

    16,711View on GitHub↗

    rbenv is a Ruby version manager and shell shim environment manager. It allows for the installation of multiple Ruby versions on a single machine and coordinates the selection of the active version based on the current directory or shell session. The tool functions as an extensible command line framework that intercepts executable calls using shell shims. These shims route requests to the selected language version, ensuring environment isolation by storing binaries in independent directories. The system includes capabilities for language runtime administration, including the ability to downlo

    Shell
    View on GitHub↗16,711
  • version-fox/vfoxversion-fox avatar

    version-fox/vfox

    3,910View on GitHub↗

    Vfox is a command-line utility designed to manage multiple programming language runtimes and development tools on a single machine. It provides a unified interface for installing, switching, and configuring software versions across different operating systems, ensuring consistent development environments. The project distinguishes itself through a modular, plugin-based architecture that allows for the integration of diverse language runtimes and utilities beyond built-in defaults. It utilizes a combination of shim-based execution, symlink management, and dynamic shell-hook environment injecti

    Goasdfbashcli
    View on GitHub↗3,910
  • moovweb/gvmmoovweb avatar

    moovweb/gvm

    11,645View on GitHub↗

    Gvm is a Go version manager, environment orchestrator, and dependency isolator. It provides a system for installing, removing, and switching between different versions of the Go programming language on a single machine. The tool manages native dependencies and creates isolated package sets to prevent version conflicts between different project environments. It uses environment variable overlays and directory isolation to link native code without modifying the host operating system. The software covers the full language lifecycle, including remote version cataloging, active version switching,

    Shelldependency-managergolang
    View on GitHub↗11,645
  • pyenv-win/pyenv-winpyenv-win avatar

    pyenv-win/pyenv-win

    7,006View on GitHub↗

    pyenv-win is a version manager for Windows that enables the installation and switching of multiple Python versions without affecting the system global installation. It functions as a multi-version installer and environment controller that ensures isolation and reproducibility across different projects. The tool uses a shim-based routing system to intercept executable calls and direct them to specific versioned binaries. This allows for both system-wide default configurations and local directory-level overrides, where a specific version is automatically activated when entering a project folder

    VBScriptpyenvpyenv-alternativepyenv-for-windows
    View on GitHub↗7,006
See all 30 alternatives to Rbenv→

Frequently asked questions

What does rbenv/rbenv do?

rbenv is a Ruby version manager and shell environment manager designed to install, switch between, and manage multiple versions of the Ruby programming language. It functions as a project runtime isolator and an extensible versioning framework that ensures the correct Ruby binaries are executed based on the current context.

What are the main features of rbenv/rbenv?

The main features of rbenv/rbenv are: Version Managers, Ruby Version Managers, Command Interception Shims, Runtime Version Switching, Shell Environment Managers, Per-Project Runtime Assignments, Shim-Based Command Interception, Environment Isolation.

What are some open-source alternatives to rbenv/rbenv?

Open-source alternatives to rbenv/rbenv include: sstephenson/rbenv — rbenv is a Ruby version manager and shell shim environment manager. It allows for the installation of multiple Ruby… version-fox/vfox — Vfox is a command-line utility designed to manage multiple programming language runtimes and development tools on a… moovweb/gvm — Gvm is a Go version manager, environment orchestrator, and dependency isolator. It provides a system for installing,… pyenv-win/pyenv-win — pyenv-win is a version manager for Windows that enables the installation and switching of multiple Python versions… creationix/nvm — nvm is a Node.js version manager implemented as a POSIX bash script. It serves as a shell environment manager and… sdkman/sdkman-cli — SDKMAN is a command-line utility for installing, tracking, and managing multiple versions of software development kits…