Skip to content

Kizuna's Package Registry hosts packages for multiple ecosystems. Publish private packages and cache public ones.

Supported Formats

FormatExtensionTool
npm.tgznpm publish
Python (PyPI).whl, .tar.gztwine upload
Maven.jar, .pommvn deploy
RubyGems.gemgem push
Go Modulesgo mod
Cargo.cratecargo publish
NuGet.nupkgnuget push

npm Packages

Publishing

Configure npm:

bash
npm config set registry https://kizuna.example.com/api/v1/packages/npm
npm login --registry https://kizuna.example.com/api/v1/packages/npm

Or create .npmrc:

registry=https://kizuna.example.com/api/v1/packages/npm
//kizuna.example.com/api/v1/packages/npm:_authToken=${KIZUNA_TOKEN}

Publish:

bash
npm publish

Installing

bash
npm install @myorg/package-name \
  --registry https://kizuna.example.com/api/v1/packages/npm

Or in .npmrc:

@myorg:registry=https://kizuna.example.com/api/v1/packages/npm

Python Packages

Publishing

Configure ~/.pypirc:

ini
[kizuna]
repository = https://kizuna.example.com/api/v1/packages/pypi
username = __token__
password = YOUR_KIZUNA_TOKEN

Publish:

bash
python -m build
twine upload --repository kizuna dist/*

Installing

bash
pip install package-name \
  --index-url https://kizuna.example.com/api/v1/packages/pypi

Or in pip.conf:

ini
[global]
index-url = https://kizuna.example.com/api/v1/packages/pypi

Maven Packages

Publishing

Configure ~/.m2/settings.xml:

xml
<settings>
  <servers>
    <server>
      <id>kizuna</id>
      <username>__token__</username>
      <password>YOUR_KIZUNA_TOKEN</password>
    </server>
  </servers>
</settings>

In pom.xml:

xml
<distributionManagement>
  <repository>
    <id>kizuna</id>
    <name>Kizuna Packages</name>
    <url>https://kizuna.example.com/api/v1/packages/maven</url>
  </repository>
</distributionManagement>

Publish:

bash
mvn deploy

Package Management

View Packages

Navigate to Packages in repository sidebar.

Package Details

@myorg/utils
├── v1.2.3 (latest)
├── v1.2.2
├── v1.2.1
└── v1.2.0

Delete Package

bash
curl -X DELETE /api/v1/repos/org/repo/packages/npm/@myorg/utils/versions/1.2.3 \
  -H "Authorization: Bearer $TOKEN"

Download Statistics

bash
curl /api/v1/repos/org/repo/packages/npm/@myorg/utils/stats

Scoped Packages

npm Scopes

bash
# Publish scoped package
npm publish --access restricted

# Install scoped package
npm install @myorg/package-name

Maven Groups

xml
<groupId>com.myorg</groupId>
<artifactId>my-library</artifactId>

API Access

List Packages

bash
curl /api/v1/repos/org/repo/packages

Get Package

bash
curl /api/v1/repos/org/repo/packages/npm/@myorg/utils

Upload Package

bash
curl -X POST /api/v1/repos/org/repo/packages/npm \
  -H "Authorization: Bearer $TOKEN" \
  -F "file=@package.tgz"

Summary

The Package Registry provides:

  • Multi-format support — npm, PyPI, Maven, etc.
  • Private hosting — Secure internal packages
  • Version management — Track all releases
  • Download tracking — Usage analytics

It's your single source for all packages.