Universal package registry and CDN - WinGet registry mirror, npm, GitHub, JSR, cdnjs, WordPress, and 40+ package registries.
- πͺ WinGet Registry - Complete Windows Package Manager mirror with search, package metadata, and version information
- π¦ Universal CDN - Access packages from npm, GitHub, JSR, cdnjs, WordPress, and more
- π SRI Support - Built-in Subresource Integrity (SHA-256) for secure CDN resource loading
- π Registry Mirror - Proxy requests to 40+ package registries (PyPI, crates.io, Go, Maven, Docker, etc.)
- π OpenAPI Documentation - Interactive API docs available at
/_docs/scalar,/_docs/swagger, and/_docs/openapi.json
Access any npm package and its files:
# Get package entry file
curl https://nexus.funish.net/cdn/npm/react
# Get specific version
curl https://nexus.funish.net/cdn/npm/react@18
# Get specific file
curl https://nexus.funish.net/cdn/npm/react@18/index.js
# Get package metadata
curl https://nexus.funish.net/cdn/npm/react@18/package.json
# Get bundled ESM module
curl https://nexus.funish.net/cdn/npm/d3@7/+esmVersion resolution:
reactβ latest versionreact@18β latest 18.x.x versionreact@18.3β latest 18.3.x versionreact@18.3.1β exact version
ESM Bundling (+esm):
The +esm endpoint bundles npm packages into a single ESM module with external dependencies resolved to CDN paths:
<script type="module">
import { scaleLinear } from 'https://nexus.funish.net/cdn/npm/d3@7/+esm';
</script>External dependencies are automatically converted to CDN URLs (e.g., d3-array β /cdn/npm/d3-array@3/+esm).
Access files from GitHub repository releases:
# Get repository files (uses main branch by default)
curl https://nexus.funish.net/cdn/gh/vuejs/core
# Get specific tag/version
curl https://nexus.funish.net/cdn/gh/vuejs/core@v3.4.0
# Get specific file
curl https://nexus.funish.net/cdn/gh/vuejs/core@v3.4.0/package.jsonAccess JSR packages for Deno and Node.js:
# Get package entry file
curl https://nexus.funish.net/cdn/jsr/@std/path
# Get specific version
curl https://nexus.funish.net/cdn/jsr/@std/path@1.1.4
# Get specific file
curl https://nexus.funish.net/cdn/jsr/@std/path@1.1.4/mod.tsAccess libraries from cdnjs:
# @ format (recommended)
curl https://nexus.funish.net/cdn/cdnjs/jquery@3.7.1/jquery.min.js
# Original format
curl https://nexus.funish.net/cdn/cdnjs/jquery/3.7.1/jquery.min.js
# List all files
curl https://nexus.funish.net/cdn/cdnjs/jquery@3.7.1/Access WordPress resources from SVN:
# Plugin from tags
curl https://nexus.funish.net/cdn/wp/plugins/wp-slimstat/tags/4.6.5/wp-slimstat.js
# Plugin from trunk (latest development)
curl https://nexus.funish.net/cdn/wp/plugins/wp-slimstat/trunk/wp-slimstat.js
# Theme
curl https://nexus.funish.net/cdn/wp/themes/twentytwentyfour/1.0/style.cssAll CDN endpoints (npm, GitHub, JSR) include SHA-256 integrity hashes for secure resource loading. The browser will verify that the file hasn't been tampered with during delivery.
# Get package listing with integrity hashes
curl https://nexus.funish.net/cdn/npm/react@18.3.1/
# Response includes integrity for each file:
{
"name": "react",
"version": "18.3.1",
"files": [
{
"name": "index.js",
"size": 12345,
"integrity": "sha256-ABC123..."
}
]
}<!-- npm package -->
<script src="https://nexus.funish.net/cdn/npm/react@18.3.1/index.js"
integrity="sha256-ABC123..."
crossorigin="anonymous"></script>
<!-- GitHub release -->
<script src="https://nexus.funish.net/cdn/gh/vuejs/core@v3.4.0/dist/vue.global.js"
integrity="sha256-XYZ789..."
crossorigin="anonymous"></script>
<!-- JSR package -->
<script type="module"
src="https://nexus.funish.net/cdn/jsr/@std/path@1.0.0/mod.ts"
integrity="sha256-DEF456..."
crossorigin="anonymous"></script>Important Notes:
- β
Use exact versions (e.g.,
react@18.3.1) - SRI is only provided for complete versions - β
Include
crossorigin="anonymous"- Required for cross-origin SRI verification - β Avoid version ranges (e.g.,
react@18) - Hash may change as versions update
Proxy requests to any supported package registry by replacing the registry URL with https://nexus.funish.net/mirror/{registry}.
JavaScript/TypeScript:
npm- npm registryjsr- JSR registry
Python:
pypi- PyPI
Rust:
crates- crates.io
Go:
go- Go Proxy
Java:
maven- Maven Centralgradle- Gradle Plugin Portal
PHP:
composer- Packagist
Docker:
docker- Docker Hubghcr- GitHub Container Registryquay- Quay.io
Flutter/Dart:
pub- pub.dev
Package Managers:
homebrew- Homebrew Formulaechocolatey- Chocolateyconda/condaforge- Condanix- Nix packagesguix- Guix packages
Linux Distributions:
debian/ubuntu- Debian/Ubuntu repositoriesfedora/epel- Fedora/EPEL repositoriesarch- Arch Linuxalpine- Alpine Linuxgentoo- Gentooopenwrt- OpenWrt
npm
# .npmrc
registry=https://nexus.funish.net/mirror/npm/pip (PyPI)
# pip.conf
[global]
index-url = https://nexus.funish.net/mirror/pypi/simplecargo (crates.io)
# .cargo/config.toml
[source.nexus]
registry = "https://nexus.funish.net/mirror/crates/"
[source.crates-io]
replace-with = "nexus"Go
# go.env
GOPROXY=https://nexus.funish.net/mirror/go,https://proxy.golang.org,directDocker
// daemon.json
{
"registry-mirrors": [
"https://nexus.funish.net/mirror/docker"
]
}Homebrew
# Replace default bottle URLs
export HOMEBREW_BOTTLE_DOMAIN=https://nexus.funish.net/mirror/homebrewYarn (npm)
yarn config set registry https://nexus.funish.net/mirror/npm/pnpm (npm)
pnpm config set registry https://nexus.funish.net/mirror/npm/Maven
<!-- pom.xml or settings.xml -->
<repositories>
<repository>
<id>nexus</id>
<url>https://nexus.funish.net/mirror/maven/</url>
</repository>
</repositories>Gradle
repositories {
maven { url 'https://nexus.funish.net/mirror/gradle/' }
}Complete Windows Package Manager registry mirror, compliant with WinGet RESTSource API 1.9.0 specification.
Available endpoints:
# List all packages
GET /registry/winget/packages
# Get package details
GET /registry/winget/packages/{id}
# Search packages
GET /registry/winget/manifestSearch?query={query}&matchType={CaseInsensitive|Exact|Fuzzy}
# Get package versions
GET /registry/winget/packages/{id}/versions
# Get specific version
GET /registry/winget/packages/{id}/versions/{version}
# Get all locales for a version
GET /registry/winget/packages/{id}/versions/{version}/locales
# Get specific locale
GET /registry/winget/packages/{id}/versions/{version}/locales/{locale}
# Get all installers for a version
GET /registry/winget/packages/{id}/versions/{version}/installers
# Get specific installer
GET /registry/winget/packages/{id}/versions/{version}/installers/{installer}Example:
curl https://nexus.funish.net/registry/winget/packages/Microsoft.VisualStudioCode/versionsInteractive API documentation is available:
- Scalar UI: https://nexus.funish.net/_docs/scalar
- Swagger UI: https://nexus.funish.net/_docs/swagger
- OpenAPI Spec: https://nexus.funish.net/_docs/openapi.json
- π« Report Issues
This project is licensed under the MIT License - see the LICENSE file for details.
Built with β€οΈ by Funish