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:
- Creating a parser
- Implementing a registry client
- Registering the language
- Adding tests