Repository Types & Clients

CloudRepo supports multiple repository formats and package managers. Choose your ecosystem to get started.

Supported Repository Types

CloudRepo provides native support for the most popular package formats and build tools, ensuring seamless integration with your existing development workflow.

JVM Ecosystem

The Java Virtual Machine ecosystem is fully supported with multiple build tools and languages.

Maven

  • Format: Maven 2/3 repository layout

  • Build Tools: Apache Maven, Maven Wrapper

  • Features: Release/snapshot separation, metadata generation, POM validation

  • Use Cases: Java libraries, Spring Boot applications, Android libraries

Maven Repositories

Gradle

  • Format: Maven or Ivy repository layout

  • Build Tools: Gradle (Groovy/Kotlin DSL), Gradle Wrapper

  • Features: Dependency caching, composite builds, publishing plugins

  • Use Cases: Android apps, Spring projects, multi-module builds

Gradle Repositories

Scala/SBT

  • Format: Ivy or Maven repository layout

  • Build Tools: SBT, Mill, Scala CLI

  • Features: Scala version compatibility, cross-building support

  • Use Cases: Scala libraries, Play Framework, Spark applications

SBT Repositories

Clojure

  • Format: Maven repository layout

  • Build Tools: Leiningen, deps.edn/tools.deps

  • Features: SNAPSHOT support, checksum verification

  • Use Cases: Clojure libraries, ClojureScript packages

Clojure deps.edn Repositories | Leiningen Repositories

Python Ecosystem

Comprehensive support for Python packaging standards and modern tools.

Standard Python (pip)

  • Format: PEP 503 simple repository

  • Tools: pip, setuptools, twine

  • Features: Wheel and source distribution support, metadata indexing

  • Use Cases: Python libraries, applications, frameworks

Python Repositories

Poetry

  • Format: PEP 503 with Poetry-specific features

  • Tools: Poetry CLI

  • Features: Dependency resolution, lock files, private repositories

  • Use Cases: Modern Python projects, dependency management

Poetry Repositories

UV (Modern Python Packaging)

  • Format: PEP 503 compliant

  • Tools: uv CLI (Rust-based)

  • Features: Fast dependency resolution, workspace support

  • Use Cases: High-performance Python tooling

UV Repositories

Conda

  • Format: Conda channel structure

  • Tools: conda, mamba, micromamba

  • Features: Binary packages, environment management

  • Use Cases: Data science, scientific computing, cross-platform distribution

Conda & Miniconda Repositories

Pixi

  • Format: Conda-compatible

  • Tools: Pixi package manager

  • Features: Fast Rust-based resolver, cross-platform support

  • Use Cases: Modern conda package management

Pixi Repositories

Other Formats

Raw Repositories

  • Format: Any file type

  • Tools: curl, wget, browser downloads

  • Features: Directory structure, versioning, direct URLs

  • Use Cases: Binaries, installers, documentation, arbitrary files

Raw HTTP Repositories

Quick Configuration Reference

Maven/Gradle

<repository>
  <id>cloudrepo</id>
  <url>https://[org-id].cloudrepo.io/repository/maven</url>
</repository>

Python/pip

pip install package --index-url https://[org-id].cloudrepo.io/repository/pypi/simple

Conda

conda config --add channels https://[org-id].cloudrepo.io/repository/conda

Choosing the Right Repository Type

Consider these factors when selecting a repository type:

Language/Ecosystem

Choose the native format for your programming language

Build Tool

Select based on your project’s build system

Package Format

Consider whether you need source, binary, or both

Version Strategy

Decide between releases, snapshots, or mixed repositories

Access Requirements

Public vs. private, authentication needs

Repository Best Practices

Organization Strategies

  1. Separate by Stability

    • releases - Production-ready artifacts

    • snapshots - Development builds

    • staging - Pre-release validation

  2. Separate by Team

    • team-frontend - Frontend team artifacts

    • team-backend - Backend team artifacts

    • shared - Cross-team dependencies

  3. Separate by Environment

    • dev - Development environment

    • qa - Testing environment

    • prod - Production environment

Naming Conventions

  • Use lowercase with hyphens: my-maven-releases

  • Include format in name: python-public

  • Add purpose suffix: maven-snapshots

  • Be consistent across your organization

Migration Guide

Moving to CloudRepo from other repository managers? Check our migration guides:

Common Use Cases

Internal Library Management

  • Host proprietary libraries and frameworks

  • Control access with fine-grained permissions

  • Version management with snapshots and releases

Dependency Proxying

  • Cache external dependencies locally

  • Reduce build times and bandwidth usage

  • Ensure availability during outages

Software Distribution

  • Distribute products to customers

  • Provide public or authenticated access

  • Track downloads and usage metrics

CI/CD Integration

  • Automated artifact publishing

  • Dependency resolution in build pipelines

  • Release promotion workflows

Getting Help