584 lines
20 KiB
Python
584 lines
20 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
"""
|
|
镜像源处理器包
|
|
支持 Docker、APT、YUM、PyPI、npm、Go、Maven、Gradle 等镜像源代理
|
|
"""
|
|
|
|
from .docker import DockerMirror
|
|
from .apt import APTMirror
|
|
from .yum import YUMMirror
|
|
from .pypi import PyPIMirror
|
|
from .npm import NpmMirror
|
|
from .go import GoProxy
|
|
from .http import HttpMirror
|
|
|
|
# 镜像处理器映射
|
|
# 特殊类型使用专用处理器,其他使用通用HTTP处理器
|
|
MIRROR_HANDLERS = {
|
|
# 专用处理器
|
|
'docker': DockerMirror,
|
|
'apt': APTMirror,
|
|
'yum': YUMMirror,
|
|
'pypi': PyPIMirror,
|
|
'npm': NpmMirror,
|
|
'go': GoProxy,
|
|
|
|
# ======== 包管理器 ========
|
|
# Python
|
|
'pip': HttpMirror,
|
|
'pipenv': HttpMirror,
|
|
'poetry': HttpMirror,
|
|
'conda': HttpMirror,
|
|
'anaconda': HttpMirror,
|
|
'bandersnatch': HttpMirror,
|
|
'twine': HttpMirror,
|
|
|
|
# Node.js
|
|
'yarn': HttpMirror,
|
|
'pnpm': HttpMirror,
|
|
'bower': HttpMirror,
|
|
|
|
# Java
|
|
'maven': HttpMirror,
|
|
'gradle': HttpMirror,
|
|
|
|
# .NET
|
|
'nuget': HttpMirror,
|
|
|
|
# Ruby
|
|
'gem': HttpMirror,
|
|
'rubygems': HttpMirror,
|
|
|
|
# Rust
|
|
'cargo': HttpMirror,
|
|
'rustup': HttpMirror,
|
|
|
|
# PHP
|
|
'composer': HttpMirror,
|
|
'packagist': HttpMirror,
|
|
|
|
# Swift/Apple
|
|
'cocoapods': HttpMirror,
|
|
|
|
# C/C++
|
|
'conan': HttpMirror,
|
|
'vcpkg': HttpMirror,
|
|
|
|
# Dart/Flutter
|
|
'pub': HttpMirror,
|
|
'dart': HttpMirror,
|
|
'flutter': HttpMirror,
|
|
|
|
# Haskell
|
|
'hackage': HttpMirror,
|
|
'stackage': HttpMirror,
|
|
|
|
# OCaml
|
|
'opam': HttpMirror,
|
|
|
|
# D语言
|
|
'dub': HttpMirror,
|
|
|
|
# Nim
|
|
'nimble': HttpMirror,
|
|
|
|
# V语言
|
|
'v': HttpMirror,
|
|
|
|
# Julia
|
|
'julia': HttpMirror,
|
|
|
|
# Lua
|
|
'lua': HttpMirror,
|
|
'luarocks': HttpMirror,
|
|
|
|
# Elm
|
|
'elm': HttpMirror,
|
|
|
|
# Perl
|
|
'cpan': HttpMirror,
|
|
'cpanm': HttpMirror,
|
|
|
|
# R
|
|
'cran': HttpMirror,
|
|
|
|
# LaTeX
|
|
'ctan': HttpMirror,
|
|
|
|
# Haskell
|
|
'haskell': HttpMirror,
|
|
|
|
# ======== 容器/云原生 ========
|
|
'helm': HttpMirror,
|
|
'kubernetes': HttpMirror,
|
|
' Quay.io': HttpMirror,
|
|
'quay': HttpMirror,
|
|
'ghcr': HttpMirror,
|
|
'gcr': HttpMirror,
|
|
'harbor': HttpMirror,
|
|
|
|
# ======== 开发工具 ========
|
|
'jetbrains': HttpMirror,
|
|
'vscode': HttpMirror,
|
|
'cuda': HttpMirror,
|
|
|
|
# ======== 语言运行时 ========
|
|
'node': HttpMirror,
|
|
'python': HttpMirror,
|
|
'ruby': HttpMirror,
|
|
'php': HttpMirror,
|
|
'java': HttpMirror,
|
|
'dotnet': HttpMirror,
|
|
|
|
# ======== Linux 发行版 ========
|
|
'alpine': HttpMirror,
|
|
'arch': HttpMirror,
|
|
'aur': HttpMirror,
|
|
'centos': HttpMirror,
|
|
'debian': HttpMirror,
|
|
'fedora': HttpMirror,
|
|
'gentoo': HttpMirror,
|
|
'opensuse': HttpMirror,
|
|
'void': HttpMirror,
|
|
'freebsd': HttpMirror,
|
|
'netbsd': HttpMirror,
|
|
'openbsd': HttpMirror,
|
|
'rocky': HttpMirror,
|
|
'alma': HttpMirror,
|
|
'kali': HttpMirror,
|
|
'ubuntu': HttpMirror,
|
|
'mint': HttpMirror,
|
|
'manjaro': HttpMirror,
|
|
'slackware': HttpMirror,
|
|
'mageia': HttpMirror,
|
|
'openmandriva': HttpMirror,
|
|
|
|
# ======== 系统包管理器 ========
|
|
'homebrew': HttpMirror,
|
|
'brew': HttpMirror,
|
|
'chocolatey': HttpMirror,
|
|
'snap': HttpMirror,
|
|
'flatpak': HttpMirror,
|
|
'appimage': HttpMirror,
|
|
'winget': HttpMirror,
|
|
'scoop': HttpMirror,
|
|
|
|
# ======== 数据库/运维 ========
|
|
'postgresql': HttpMirror,
|
|
'mysql': HttpMirror,
|
|
'mariadb': HttpMirror,
|
|
'mongodb': HttpMirror,
|
|
'redis': HttpMirror,
|
|
'influxdata': HttpMirror,
|
|
'grafana': HttpMirror,
|
|
'prometheus': HttpMirror,
|
|
'elastic': HttpMirror,
|
|
'bitnami': HttpMirror,
|
|
|
|
# ======== 代码托管/源码 ========
|
|
'git': HttpMirror,
|
|
'github': HttpMirror,
|
|
'gitlab': HttpMirror,
|
|
'bitbucket': HttpMirror,
|
|
'sourceforge': HttpMirror,
|
|
|
|
# ======== 其他 ========
|
|
'pacman': HttpMirror,
|
|
'nix': HttpMirror,
|
|
'guix': HttpMirror,
|
|
'termux': HttpMirror,
|
|
'msys2': HttpMirror,
|
|
'google-fonts': HttpMirror,
|
|
'aurora': HttpMirror,
|
|
'cloudflare': HttpMirror,
|
|
'fastly': HttpMirror,
|
|
|
|
# ======== 自定义 ========
|
|
'http': HttpMirror,
|
|
'custom': HttpMirror,
|
|
}
|
|
|
|
|
|
def get_mirror_handler(mirror_type: str):
|
|
"""获取镜像处理器类"""
|
|
return MIRROR_HANDLERS.get(mirror_type)
|
|
|
|
|
|
# 各镜像类型的默认上游URL
|
|
DEFAULT_UPSTREAM_URLS = {
|
|
# ======== 包管理器 ========
|
|
# Python
|
|
'pip': 'https://pypi.org/simple',
|
|
'pipenv': 'https://pypi.org/simple',
|
|
'poetry': 'https://pypi.org/simple',
|
|
'conda': 'https://repo.anaconda.com',
|
|
'anaconda': 'https://repo.anaconda.com',
|
|
'bandersnatch': 'https://pypi.org/simple',
|
|
'twine': 'https://pypi.org/simple',
|
|
|
|
# Node.js
|
|
'yarn': 'https://registry.yarnpkg.com',
|
|
'pnpm': 'https://registry.npmjs.org',
|
|
'bower': 'https://registry.bower.io',
|
|
|
|
# Java
|
|
'maven': 'https://repo1.maven.org/maven2',
|
|
'gradle': 'https://services.gradle.org/distributions',
|
|
|
|
# .NET
|
|
'nuget': 'https://api.nuget.org/v3',
|
|
|
|
# Ruby
|
|
'gem': 'https://rubygems.org',
|
|
'rubygems': 'https://rubygems.org',
|
|
|
|
# Rust
|
|
'cargo': 'https://crates.io',
|
|
'rustup': 'https://static.rust-lang.org',
|
|
|
|
# PHP
|
|
'composer': 'https://repo.packagist.org',
|
|
'packagist': 'https://repo.packagist.org',
|
|
|
|
# Swift/Apple
|
|
'cocoapods': 'https://cdn.cocoapods.org',
|
|
|
|
# C/C++
|
|
'conan': 'https://center.conan.io',
|
|
'vcpkg': 'https://github.com/microsoft/vcpkg/archive/refs/heads/main.tar.gz',
|
|
|
|
# Dart/Flutter
|
|
'pub': 'https://pub.dev',
|
|
'dart': 'https://storage.googleapis.com/flutter_infra_release',
|
|
'flutter': 'https://storage.flutter-io.cn',
|
|
|
|
# Haskell
|
|
'hackage': 'https://hackage.haskell.org',
|
|
'stackage': 'https://www.stackage.org',
|
|
|
|
# OCaml
|
|
'opam': 'https://opam.ocaml.org',
|
|
|
|
# D语言
|
|
'dub': 'https://code.dlang.org',
|
|
|
|
# Nim
|
|
'nimble': 'https://nimble.directory',
|
|
|
|
# V语言
|
|
'v': 'https://vpm.itsgriffin.com',
|
|
|
|
# Julia
|
|
'julia': 'https://pkg.julialang.org',
|
|
|
|
# Lua
|
|
'lua': 'https://luarocks.org',
|
|
'luarocks': 'https://luarocks.org',
|
|
|
|
# Elm
|
|
'elm': 'https://package.elm-lang.org',
|
|
|
|
# Perl
|
|
'cpan': 'https://www.cpan.org',
|
|
'cpanm': 'https://www.cpan.org',
|
|
|
|
# R
|
|
'cran': 'https://cran.r-project.org',
|
|
|
|
# LaTeX
|
|
'ctan': 'https://ctan.math.illinois.edu',
|
|
|
|
# Haskell
|
|
'haskell': 'https://haskell.org',
|
|
|
|
# ======== 容器/云原生 ========
|
|
'helm': 'https://charts.helm.sh',
|
|
'kubernetes': 'https://dl.k8s.io/release',
|
|
'quay': 'https://quay.io',
|
|
'quay.io': 'https://quay.io',
|
|
'ghcr': 'https://ghcr.io',
|
|
'gcr': 'https://gcr.io',
|
|
'harbor': 'https://harbor.io',
|
|
|
|
# ======== 开发工具 ========
|
|
'jetbrains': 'https://www.jetbrains.com',
|
|
'vscode': 'https://code.visualstudio.com',
|
|
'cuda': 'https://developer.download.nvidia.com/compute/cuda/repos',
|
|
|
|
# ======== 语言运行时 ========
|
|
'node': 'https://nodejs.org/dist',
|
|
'python': 'https://www.python.org/ftp/python',
|
|
'ruby': 'https://www.ruby-lang.org',
|
|
'php': 'https://www.php.net/distributions',
|
|
'java': 'https://download.oracle.com/java',
|
|
'dotnet': 'https://dotnetcli.azureedge.net',
|
|
|
|
# ======== Linux 发行版 ========
|
|
'alpine': 'https://dl-cdn.alpinelinux.org',
|
|
'arch': 'https://mirror.archlinux.org',
|
|
'aur': 'https://aur.archlinux.org',
|
|
'centos': 'https://mirrors.aliyun.com/centos',
|
|
'debian': 'https://deb.debian.org/debian',
|
|
'fedora': 'https://mirrors.fedoraproject.org',
|
|
'gentoo': 'https://distfiles.gentoo.org',
|
|
'opensuse': 'https://download.opensuse.org',
|
|
'void': 'https://repo.voidlinux.org',
|
|
'freebsd': 'https://pkg.freebsd.org',
|
|
'netbsd': 'https://cdn.netbsd.org',
|
|
'openbsd': 'https://cdn.openbsd.org',
|
|
'rocky': 'https://download.rockylinux.org',
|
|
'alma': 'https://repo.almalinux.org',
|
|
'kali': 'http://.kali.org',
|
|
'ubuntu': 'https://releases.ubuntu.com',
|
|
'mint': 'https://packages.linuxmint.com',
|
|
'manjaro': 'https://repo.manjaro.org',
|
|
'slackware': 'https://mirrors.slackware.com',
|
|
'mageia': 'https://www.mageia.org',
|
|
'openmandriva': 'https://download.openmandriva.org',
|
|
|
|
# ======== 系统包管理器 ========
|
|
'homebrew': 'https://github.com/Homebrew/brew',
|
|
'brew': 'https://github.com/Homebrew/brew',
|
|
'chocolatey': 'https://chocolatey.org/api/v2',
|
|
'snap': 'https://snapcraft.io',
|
|
'flatpak': 'https://flathub.org',
|
|
'appimage': 'https://github.com/AppImage/AppImageHub/releases',
|
|
'winget': 'https://github.com/microsoft/winget-pkgs',
|
|
'scoop': 'https://scoop.sh',
|
|
|
|
# ======== 数据库/运维 ========
|
|
'postgresql': 'https://www.postgresql.org',
|
|
'mysql': 'https://dev.mysql.com',
|
|
'mariadb': 'https://mariadb.org',
|
|
'mongodb': 'https://www.mongodb.org',
|
|
'redis': 'https://redis.io',
|
|
'influxdata': 'https://portal.influxdata.com',
|
|
'grafana': 'https://grafana.com',
|
|
'prometheus': 'https://prometheus.io',
|
|
'elastic': 'https://www.elastic.co',
|
|
'bitnami': 'https://bitnami.com',
|
|
|
|
# ======== 代码托管/源码 ========
|
|
'git': 'https://github.com',
|
|
'github': 'https://github.com',
|
|
'gitlab': 'https://gitlab.com',
|
|
'bitbucket': 'https://bitbucket.org',
|
|
'sourceforge': 'https://sourceforge.net',
|
|
|
|
# ======== 其他 ========
|
|
'pacman': 'https://mirror.archlinux.org',
|
|
'nix': 'https://nix-community.org',
|
|
'guix': 'https://guix.gnu.org',
|
|
'termux': 'https://termux.net',
|
|
'msys2': 'https://repo.msys2.org',
|
|
'google-fonts': 'https://fonts.google.com',
|
|
'aurora': 'https://auroralinux.org',
|
|
'cloudflare': 'https://cloudflare.com',
|
|
'fastly': 'https://fastly.com',
|
|
}
|
|
|
|
|
|
def get_default_upstream(mirror_type: str) -> str:
|
|
"""获取镜像类型的默认上游URL"""
|
|
return DEFAULT_UPSTREAM_URLS.get(mirror_type, 'https://mirror.example.com')
|
|
|
|
|
|
def list_available_mirrors() -> list:
|
|
"""列出可用的镜像类型"""
|
|
return [
|
|
# ======== 专用处理器 ========
|
|
{
|
|
'type': 'docker',
|
|
'name': 'Docker Registry',
|
|
'description': 'Docker镜像代理'
|
|
},
|
|
{
|
|
'type': 'apt',
|
|
'name': 'APT (Debian/Ubuntu)',
|
|
'description': 'APT软件源代理'
|
|
},
|
|
{
|
|
'type': 'yum',
|
|
'name': 'YUM/DNF (RHEL/CentOS)',
|
|
'description': 'YUM/DNF软件源代理'
|
|
},
|
|
{
|
|
'type': 'pypi',
|
|
'name': 'PyPI',
|
|
'description': 'Python包索引代理'
|
|
},
|
|
{
|
|
'type': 'npm',
|
|
'name': 'npm Registry',
|
|
'description': 'Node.js包管理器代理'
|
|
},
|
|
{
|
|
'type': 'go',
|
|
'name': 'Go Modules',
|
|
'description': 'Go模块代理'
|
|
},
|
|
|
|
# ======== 包管理器 ========
|
|
# Python
|
|
{'type': 'pip', 'name': 'pip', 'description': 'Python pip包管理器'},
|
|
{'type': 'pipenv', 'name': 'Pipenv', 'description': 'Python Pipenv代理'},
|
|
{'type': 'poetry', 'name': 'Poetry', 'description': 'Python Poetry包管理器'},
|
|
{'type': 'conda', 'name': 'Conda', 'description': 'Python Conda包管理器'},
|
|
{'type': 'anaconda', 'name': 'Anaconda', 'description': 'Anaconda Python发行版'},
|
|
|
|
# Node.js
|
|
{'type': 'yarn', 'name': 'Yarn', 'description': 'Node.js Yarn包管理器'},
|
|
{'type': 'pnpm', 'name': 'pnpm', 'description': 'Node.js pnpm包管理器'},
|
|
{'type': 'bower', 'name': 'Bower', 'description': '前端包管理器'},
|
|
|
|
# Java
|
|
{'type': 'maven', 'name': 'Maven Central', 'description': 'Java/Maven包管理器'},
|
|
{'type': 'gradle', 'name': 'Gradle', 'description': 'Gradle构建工具分发'},
|
|
|
|
# .NET
|
|
{'type': 'nuget', 'name': 'NuGet', 'description': '.NET包管理器'},
|
|
|
|
# Ruby
|
|
{'type': 'gem', 'name': 'RubyGems', 'description': 'Ruby包管理器'},
|
|
{'type': 'rubygems', 'name': 'RubyGems', 'description': 'Ruby官方仓库'},
|
|
|
|
# Rust
|
|
{'type': 'cargo', 'name': 'Crates.io', 'description': 'Rust语言包管理器'},
|
|
{'type': 'rustup', 'name': 'Rustup', 'description': 'Rust工具链'},
|
|
|
|
# PHP
|
|
{'type': 'composer', 'name': 'Composer', 'description': 'PHP包管理器'},
|
|
{'type': 'packagist', 'name': 'Packagist', 'description': 'PHP官方包仓库'},
|
|
|
|
# Swift/Apple
|
|
{'type': 'cocoapods', 'name': 'CocoaPods', 'description': 'iOS/macOS包管理器'},
|
|
|
|
# C/C++
|
|
{'type': 'conan', 'name': 'Conan', 'description': 'C/C++包管理器'},
|
|
{'type': 'vcpkg', 'name': 'vcpkg', 'description': 'C/C++包管理器'},
|
|
|
|
# Dart/Flutter
|
|
{'type': 'pub', 'name': 'Pub.dev', 'description': 'Dart/Flutter包管理器'},
|
|
{'type': 'dart', 'name': 'Dart SDK', 'description': 'Dart SDK'},
|
|
{'type': 'flutter', 'name': 'Flutter', 'description': 'Flutter SDK'},
|
|
|
|
# Haskell
|
|
{'type': 'hackage', 'name': 'Hackage', 'description': 'Haskell包管理器'},
|
|
{'type': 'stackage', 'name': 'Stackage', 'description': 'Haskell Stackage'},
|
|
|
|
# OCaml
|
|
{'type': 'opam', 'name': 'OPAM', 'description': 'OCaml包管理器'},
|
|
|
|
# D语言
|
|
{'type': 'dub', 'name': 'Dub', 'description': 'D语言包管理器'},
|
|
|
|
# Nim
|
|
{'type': 'nimble', 'name': 'Nimble', 'description': 'Nim语言包管理器'},
|
|
|
|
# V语言
|
|
{'type': 'v', 'name': 'V PM', 'description': 'V语言包管理器'},
|
|
|
|
# Julia
|
|
{'type': 'julia', 'name': 'Julia Packages', 'description': 'Julia语言包管理器'},
|
|
|
|
# Lua
|
|
{'type': 'lua', 'name': 'Lua', 'description': 'Lua语言'},
|
|
{'type': 'luarocks', 'name': 'LuaRocks', 'description': 'Lua包管理器'},
|
|
|
|
# Elm
|
|
{'type': 'elm', 'name': 'Elm Packages', 'description': 'Elm语言包管理器'},
|
|
|
|
# Perl
|
|
{'type': 'cpan', 'name': 'CPAN', 'description': 'Perl包管理器'},
|
|
{'type': 'cpanm', 'name': 'cpanm', 'description': 'Perl cpanminus'},
|
|
|
|
# R
|
|
{'type': 'cran', 'name': 'CRAN', 'description': 'R语言包仓库'},
|
|
|
|
# LaTeX
|
|
{'type': 'ctan', 'name': 'CTAN', 'description': 'LaTeX包管理器'},
|
|
|
|
# ======== 容器/云原生 ========
|
|
{'type': 'helm', 'name': 'Helm Charts', 'description': 'Kubernetes Helm包'},
|
|
{'type': 'kubernetes', 'name': 'Kubernetes', 'description': 'Kubernetes发行版'},
|
|
{'type': 'quay', 'name': 'Quay.io', 'description': 'Quay容器仓库'},
|
|
{'type': 'ghcr', 'name': 'GitHub Container Registry', 'description': 'GitHub容器仓库'},
|
|
{'type': 'gcr', 'name': 'Google Container Registry', 'description': 'Google容器仓库'},
|
|
{'type': 'harbor', 'name': 'Harbor', 'description': 'Harbor容器仓库'},
|
|
|
|
# ======== 开发工具 ========
|
|
{'type': 'jetbrains', 'name': 'JetBrains', 'description': 'JetBrains IDE'},
|
|
{'type': 'vscode', 'name': 'VS Code', 'description': 'Visual Studio Code'},
|
|
{'type': 'cuda', 'name': 'CUDA', 'description': 'NVIDIA CUDA工具包'},
|
|
|
|
# ======== 语言运行时 ========
|
|
{'type': 'node', 'name': 'Node.js', 'description': 'Node.js官方'},
|
|
{'type': 'python', 'name': 'Python', 'description': 'Python官方'},
|
|
{'type': 'ruby', 'name': 'Ruby', 'description': 'Ruby官方'},
|
|
{'type': 'php', 'name': 'PHP', 'description': 'PHP官方'},
|
|
{'type': 'java', 'name': 'Java JDK', 'description': 'Oracle/OpenJDK'},
|
|
{'type': 'dotnet', 'name': '.NET SDK', 'description': '.NET SDK'},
|
|
|
|
# ======== Linux 发行版 ========
|
|
{'type': 'alpine', 'name': 'Alpine Linux', 'description': 'Alpine Linux'},
|
|
{'type': 'arch', 'name': 'Arch Linux', 'description': 'Arch Linux'},
|
|
{'type': 'aur', 'name': 'AUR', 'description': 'Arch Linux AUR'},
|
|
{'type': 'centos', 'name': 'CentOS', 'description': 'CentOS'},
|
|
{'type': 'debian', 'name': 'Debian', 'description': 'Debian'},
|
|
{'type': 'fedora', 'name': 'Fedora', 'description': 'Fedora'},
|
|
{'type': 'gentoo', 'name': 'Gentoo', 'description': 'Gentoo'},
|
|
{'type': 'opensuse', 'name': 'openSUSE', 'description': 'openSUSE'},
|
|
{'type': 'void', 'name': 'Void Linux', 'description': 'Void Linux'},
|
|
{'type': 'freebsd', 'name': 'FreeBSD', 'description': 'FreeBSD'},
|
|
{'type': 'netbsd', 'name': 'NetBSD', 'description': 'NetBSD'},
|
|
{'type': 'openbsd', 'name': 'OpenBSD', 'description': 'OpenBSD'},
|
|
{'type': 'rocky', 'name': 'Rocky Linux', 'description': 'Rocky Linux'},
|
|
{'type': 'alma', 'name': 'AlmaLinux', 'description': 'AlmaLinux'},
|
|
{'type': 'kali', 'name': 'Kali Linux', 'description': 'Kali Linux'},
|
|
{'type': 'ubuntu', 'name': 'Ubuntu', 'description': 'Ubuntu'},
|
|
{'type': 'mint', 'name': 'Linux Mint', 'description': 'Linux Mint'},
|
|
{'type': 'manjaro', 'name': 'Manjaro', 'description': 'Manjaro Linux'},
|
|
{'type': 'slackware', 'name': 'Slackware', 'description': 'Slackware'},
|
|
{'type': 'mageia', 'name': 'Mageia', 'description': 'Mageia Linux'},
|
|
{'type': 'openmandriva', 'name': 'OpenMandriva', 'description': 'OpenMandriva'},
|
|
|
|
# ======== 系统包管理器 ========
|
|
{'type': 'homebrew', 'name': 'Homebrew', 'description': 'macOS Homebrew'},
|
|
{'type': 'brew', 'name': 'Brew', 'description': 'Homebrew'},
|
|
{'type': 'chocolatey', 'name': 'Chocolatey', 'description': 'Windows Chocolatey'},
|
|
{'type': 'snap', 'name': 'Snap Store', 'description': 'Snap应用商店'},
|
|
{'type': 'flatpak', 'name': 'Flatpak', 'description': 'Flatpak应用'},
|
|
{'type': 'appimage', 'name': 'AppImage', 'description': 'AppImage应用'},
|
|
{'type': 'winget', 'name': 'winget', 'description': 'Windows winget'},
|
|
{'type': 'scoop', 'name': 'Scoop', 'description': 'Windows Scoop'},
|
|
|
|
# ======== 数据库/运维 ========
|
|
{'type': 'postgresql', 'name': 'PostgreSQL', 'description': 'PostgreSQL数据库'},
|
|
{'type': 'mysql', 'name': 'MySQL', 'description': 'MySQL数据库'},
|
|
{'type': 'mariadb', 'name': 'MariaDB', 'description': 'MariaDB数据库'},
|
|
{'type': 'mongodb', 'name': 'MongoDB', 'description': 'MongoDB数据库'},
|
|
{'type': 'redis', 'name': 'Redis', 'description': 'Redis数据库'},
|
|
{'type': 'influxdata', 'name': 'InfluxData', 'description': 'InfluxDB时序数据库'},
|
|
{'type': 'grafana', 'name': 'Grafana', 'description': 'Grafana可视化'},
|
|
{'type': 'prometheus', 'name': 'Prometheus', 'description': 'Prometheus监控'},
|
|
{'type': 'elastic', 'name': 'Elastic', 'description': 'Elasticsearch'},
|
|
|
|
# ======== 代码托管 ========
|
|
{'type': 'github', 'name': 'GitHub', 'description': 'GitHub代码托管'},
|
|
{'type': 'gitlab', 'name': 'GitLab', 'description': 'GitLab代码托管'},
|
|
{'type': 'bitbucket', 'name': 'Bitbucket', 'description': 'Bitbucket代码托管'},
|
|
{'type': 'sourceforge', 'name': 'SourceForge', 'description': 'SourceForge开源托管'},
|
|
|
|
# ======== 其他 ========
|
|
{'type': 'nix', 'name': 'Nix/NixOS', 'description': 'Nix包管理器'},
|
|
{'type': 'guix', 'name': 'Guix', 'description': 'Guix包管理器'},
|
|
{'type': 'termux', 'name': 'Termux', 'description': 'Termux包管理器'},
|
|
{'type': 'msys2', 'name': 'MSYS2', 'description': 'MSYS2包管理器'},
|
|
{'type': 'google-fonts', 'name': 'Google Fonts', 'description': 'Google字体库'},
|
|
|
|
# ======== 自定义 ========
|
|
{'type': 'custom', 'name': '自定义HTTP', 'description': '自定义HTTP镜像源'}
|
|
]
|