Skip to content
/ svm Public

一个强大的多语言SDK版本管理工具,让你轻松切换各种编程语言的版本

License

Notifications You must be signed in to change notification settings

eusen/svm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

✨ SVM ✨

SDK Version Manager

SVM Logo Go Version Made with Cursor License: MIT

一个强大的多语言SDK版本管理工具,让你轻松切换各种编程语言的版本

🚀 AI 驱动的开发

惊人事实: 这个项目完全由 Cursor AI 辅助完成,从设计到实现,没有手写一行代码!整个开发过程仅用了 12 小时

作为一个实验性项目,SVM 展示了 AI 辅助编程的强大能力。整个代码库是通过与 Cursor AI 的对话生成的,包括架构设计、功能实现和错误修复。这种开发方式极大地提高了效率,也为未来的软件开发提供了新的可能性。

🌟 主要特点

  • 🔄 多语言支持: 管理 Node.js, Go, Java, Python, .NET 等多种语言环境
  • 🔍 版本发现: 自动获取官方最新版本列表
  • 📦 简单安装: 一键安装任意版本的SDK
  • 🔀 快速切换: 在不同版本间无缝切换
  • 🔧 自动配置: 自动设置所需的环境变量
  • 💻 跨平台: 支持 Windows, macOS 和 Linux
  • 🎨 彩色输出: 美化的命令行界面,带有图标和彩色文本

📋 支持的语言

语言 状态 特性
Node.js 完整支持
Go 完整支持
Java 完整支持
Python 完整支持
.NET 完整支持 (SDK, ASP.NET Core, 桌面运行时, .NET 运行时)
Rust 🔜 计划中
Swift 🔜 计划中
Deno 🔜 计划中
PHP 🔜 计划中
Dart 🔜 计划中
Kotlin 🔜 计划中

🚀 快速开始

安装

# 从源码构建
git clone https://github.com/Eusen/svm.git
cd svm
go build -o svm.exe

# 或者下载预编译的二进制文件
# (链接将在发布后提供)

基本用法

# 列出可用版本
svm node list
svm go list
svm java list
svm python list
svm dotnet sdk list

# 列出所有版本(不过滤)
svm node list -a
svm go list --all

# 只显示已安装的版本
svm node list -i
svm go list --installed

# 安装指定版本
svm node install 16.20.2
svm go install 1.24.1
svm java install 17
svm python install 3.12.9
svm dotnet sdk install 8.0.100

# 切换版本
svm node use 16.20.2
svm go use 1.24.1
svm java use 17
svm python use 3.12.9
svm dotnet sdk use 8.0.100

# 删除版本
svm node remove 14.21.3
svm go remove 1.23.0
svm java remove 11
svm python remove 3.11.8
svm dotnet sdk remove 7.0.100

# 显示当前使用的版本
svm node current
svm go current
svm java current
svm python current
svm dotnet sdk current

# 配置安装目录
svm config set-install-dir D:\SDKs
svm config get-install-dir

🔧 环境变量设置

SVM 会自动处理所需的环境变量设置:

  • Node.js: 设置 PATH
  • Go: 设置 GOROOT 和 PATH
  • Java: 设置 JAVA_HOME 和 PATH
  • Python: 设置 PYTHONHOME 和 PATH
  • .NET: 设置 DOTNET_ROOT 和 PATH

🏗️ 项目结构

svm/
├── cmd/               # 命令行界面
├── internal/          # 内部实现
│   ├── config/        # 配置管理
│   ├── sdk/           # SDK 实现
│   └── utils/         # 工具函数
├── docs/              # 文档
├── main.go            # 程序入口
└── README.md          # 项目文档

🤔 为什么选择 SVM?

  • 统一体验: 使用相同的命令管理所有语言环境
  • 简单直观: 无需记忆复杂的命令和选项
  • 自动化: 自动处理环境变量和路径设置
  • 轻量级: 单一可执行文件,无需复杂安装
  • 美观界面: 彩色输出和图标,提升用户体验

📝 更新日志

v1.1.0

  • 新增 .NET 版本管理功能
  • 命令行界面美化,添加彩色输出
  • 日志系统重构
  • 环境变量管理改进
  • 详细更新日志请查看 v1.1.0.md

v1.0.0

  • 初始版本发布
  • 支持 Node.js, Go, Java, Python 版本管理
  • 详细更新日志请查看 v1.0.0.md

🔮 未来计划

  • 添加更多语言支持
  • 支持在线更新版本列表
  • 添加图形用户界面
  • 支持通过配置文件设置项目级别的SDK版本

🤝 贡献

欢迎贡献代码、报告问题或提出新功能建议!我们特别希望听到你的使用体验和改进意见。

  1. Fork 这个仓库
  2. 创建你的特性分支 (git checkout -b feature/amazing-feature)
  3. 提交你的更改 (git commit -m 'Add some amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 开启一个 Pull Request

📝 反馈与支持

遇到问题或有新想法?请在 GitHub Issues 中告诉我们!我们非常重视你的反馈,它将帮助我们不断改进这个工具。

📜 许可证

本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件


用 ❤️ 和 AI 构建

About

一个强大的多语言SDK版本管理工具,让你轻松切换各种编程语言的版本

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages