Supported Languages

Dependi supports 8 programming languages and their package ecosystems.


Overview

Language Dependency File Registry Status
Rust Cargo.toml crates.io Full support
JavaScript/TypeScript package.json npm Full support
Python requirements.txt, pyproject.toml PyPI Full support
Go go.mod proxy.golang.org Full support
PHP composer.json Packagist Full support
Dart/Flutter pubspec.yaml pub.dev Full support
C#/.NET *.csproj NuGet Full support
Ruby Gemfile RubyGems.org Full support

Features by Language

All languages support:

  • Inlay hints showing latest versions
  • Diagnostics for outdated dependencies
  • Code actions to update versions
  • Vulnerability scanning via OSV.dev
  • Hover information with package details

File Detection

Dependi automatically detects dependency files by name:

Cargo.toml        → Rust
package.json      → Node.js
requirements.txt  → Python
pyproject.toml    → Python
go.mod            → Go
composer.json     → PHP
pubspec.yaml      → Dart
*.csproj          → .NET
Gemfile           → Ruby

Version Formats

Each ecosystem has its own version specification format:

Ecosystem Example Meaning
Rust "1.0", "^1.0", "~1.0" Cargo semver
npm "^1.0.0", "~1.0.0", ">=1.0" npm semver
Python ==1.0.0, >=1.0,<2.0 PEP 440
Go v1.0.0, v1.0.0+incompatible Go modules
PHP ^1.0, ~1.0, >=1.0 <2.0 Composer
Dart ^1.0.0, ">=1.0.0 <2.0.0" pub
.NET 1.0.0, [1.0,2.0) NuGet
Ruby ~> 1.0, >= 1.0, < 2.0 Bundler

Dependi understands these formats and extracts the correct version for checking.

Adding Language Support

Want to add support for a new language? See the Contributing Guide for instructions on:

  1. Creating a parser
  2. Implementing a registry client
  3. Registering the language
  4. Adding tests

Table of contents