deps-go 0.5.1

Go module support for deps-lsp
Documentation

deps-go

Crates.io docs.rs codecov License: MIT

Go modules support for deps-lsp.

This crate provides parsing and registry integration for Go's module ecosystem.

Features

  • go.mod Parsing — Parse go.mod with position tracking for all directives
  • go.sum Lock File — Extract resolved versions from go.sum
  • Directive Support — Handle require, replace, exclude, and retract directives
  • Indirect Dependencies — Detect and mark indirect dependencies (// indirect)
  • Pseudo-versions — Parse and validate Go pseudo-version format
  • proxy.golang.org — Fetch module versions from Go module proxy
  • Module Path Escaping — Proper URL encoding for uppercase characters
  • EcosystemHandler — Implements deps_core::EcosystemHandler trait

Usage

[dependencies]
deps-go = "0.5"
use deps_go::{parse_go_mod, GoRegistry};

let dependencies = parse_go_mod(content, &uri)?;
let registry = GoRegistry::new(cache);
let versions = registry.get_versions("github.com/gin-gonic/gin").await?;

Supported Directives

require

require github.com/gin-gonic/gin v1.9.1
require (
    github.com/stretchr/testify v1.8.4
    golang.org/x/sync v0.5.0 // indirect
)

replace

replace github.com/old/module => github.com/new/module v1.0.0
replace github.com/local/module => ../local/module

exclude

exclude github.com/pkg/module v1.2.3

Pseudo-version Support

Handles Go's pseudo-version format for unreleased commits:

v0.0.0-20191109021931-daa7c04131f5

Extracts base version and timestamp for display.

License

MIT