deps-bundler 0.9.3

Gemfile support for deps-lsp
Documentation

deps-bundler

Crates.io docs.rs CI codecov License: MIT

Gemfile support for deps-lsp.

This crate is part of the deps-lsp workspace. It provides Bundler-specific functionality including Gemfile DSL parsing, dependency extraction, and rubygems.org registry integration, and implements deps_core::Ecosystem.

Features

  • Gemfile parsing — Parse Gemfile with position tracking via a regex-based DSL parser
  • Lock file parsing — Extract resolved versions from Gemfile.lock
  • rubygems.org registry — HTTP client for version lookups and package search
  • Version resolution — Ruby-aware version matching with pessimistic operator (~>)
  • Dependency sources — Support for registry, git, path, and github dependencies
  • Group handling — Handle :development, :test, :production groups

Installation

[dependencies]
deps-bundler = "0.9.3"

[!IMPORTANT] Requires Rust 1.89 or later.

Usage

use deps_bundler::{parse_gemfile, RubyGemsRegistry};

let result = parse_gemfile(content, &uri)?;
let registry = RubyGemsRegistry::new(cache);
let versions = registry.get_versions("rails").await?;

Supported Gemfile syntax

source "https://rubygems.org"

gem "rails", "~> 7.0"
gem "pg", ">= 1.1"
gem "puma", require: false

group :development, :test do
  gem "rspec-rails"
end

gem "my_gem", git: "https://github.com/user/repo.git"
gem "local_gem", path: "../local_gem"

License

MIT