Todos los productos de AWS Marketplace
FerroRepo
Almacenamiento y datos

FerroRepo

Repositorio universal de artefactos nativo en Rust

Binario único, sin JVM ni DB Servicio de AWS que reemplaza: Sonatype Nexus / JFrog Artifactory
Obtener en AWS Marketplace

Repositorio universal de artefactos nativo en Rust que se ejecuta como un único binario autocontenido y habla los protocolos wire de Sonatype Nexus Repository 3 y JFrog Artifactory, por lo que los clientes Maven, npm, pip, cargo, docker y helm existentes funcionan sin cambios. Sin JVM y sin base de datos externa que operar (SQLite embebido + volumen local u object storage), y arranca en bastante menos de un segundo.

Un despliegue clásico de Nexus o Artifactory necesita una JVM, gigabytes de heap y una base de datos externa antes de servir un solo artefacto; el modo de binario único de FerroRepo lo sustituye por un binario endurecido que se entrega como AMI autocontenida. v0.1.0 sirve 12 de 18 protocolos de paquetes completamente cableados con pruebas de conformidad in-tree — Maven, npm, OCI / Docker Registry v2, PyPI (familia PEP 503), Cargo (sparse index), Go module proxy, Raw/Generic, NuGet v3, RubyGems, Helm (classic + OCI), APT y YUM/DNF — además de una superficie de administración Nexus REST v1 y compatible con Artifactory. El almacenamiento es por niveles (hot/warm/cold), con deduplicación por contenido y backends blob conectables S3 / GCS / Azure / MinIO. La autenticación está activada por defecto: se permiten lecturas anónimas, mientras que cada escritura y acción de administración requiere un principal autenticado.

El problema

Los repositorios de artefactos clásicos como Sonatype Nexus Repository 3 y JFrog Artifactory necesitan una JVM, gigabytes de heap y una base de datos externa para funcionar incluso antes de servir un solo artefacto. Tienen un arranque pesado y conllevan un coste operativo real. Los equipos quieren un repositorio más ligero y fácil de ejecutar, pero manteniendo sus herramientas habituales de Maven, npm, pip, cargo, docker y helm sin cambios.

Cómo funciona

  1. 1

    Arrancar un único binario autocontenido

    FerroRepo funciona como un único proceso sin JVM ni base de datos externa, persistiendo los metadatos en una base de datos SQLite integrada y los blobs en un volumen local o almacenamiento de objetos. Arranca en mucho menos de un segundo en una instancia pequeña y se distribuye como una AMI securizada y autocontenida.

  2. 2

    Apuntar los clientes existentes hacia él sin cambios

    FerroRepo habla los protocolos HTTP de red de Nexus Repository 3 y Artifactory, de modo que los clientes de Maven, npm, pip, cargo, docker, helm y apt/yum pueden apuntar a él sin realizar cambios. La versión v0.1.0 tiene 12 de los 18 protocolos completamente conectados con pruebas de conformidad in-tree.

  3. 3

    Organizar el almacenamiento en niveles y deduplicar blobs

    El almacenamiento está estructurado en niveles (hot/warm/cold) con deduplicación de blobs direccionados por contenido. El backend de blobs es intercambiable entre S3 / GCS / Azure / MinIO mediante object_store, y la autenticación está activa por defecto: se permiten lecturas anónimas, mientras que toda escritura o acción de administración requiere un principal autenticado con los permisos adecuados.

Características destacadas

Compatible a nivel wire con Nexus 3 + Artifactory — las herramientas de build existentes (Maven / npm / pip / cargo / docker / helm) funcionan sin cambios.

Binario único sin JVM y sin DB externa; arranque en menos de un segundo, con SQLite + blob storage conectable S3 / GCS / Azure / MinIO.

12 de 18 protocolos cableados con pruebas de conformidad; auth activada por defecto (lectura anónima, escritura autenticada).

Qué incluye

  • AMI autocontenida basada en Amazon Linux 2023 (Graviton / arm64, se ejecuta en instancias de las clases t4g, c7g, m7g y r7g)
  • Servidor de un único binario sin JVM ni base de datos externa (metadatos en SQLite integrado, blobs en volumen local o almacenamiento de objetos, arranca en menos de un segundo)
  • 12 de los 18 protocolos completamente conectados (Maven, npm, OCI / Docker Registry v2, PyPI [familia PEP 503], índice disperso de Cargo, Go module proxy, Raw/Generic, NuGet v3, RubyGems Compact Index, Helm clásico + OCI, APT, YUM/DNF), además de una interfaz de administración compatible con Nexus REST v1 y Artifactory
  • Almacenamiento en niveles hot/warm/cold con deduplicación de blobs direccionados por contenido
  • Backends de blobs S3 / GCS / Azure / MinIO intercambiables a través de object_store
  • Autenticación activa por defecto (se permiten lecturas anónimas; cada escritura y acción de administración requiere autenticación; usuarios integrados o federación OIDC; se genera una contraseña de administrador aleatoria y única en el primer arranque)
  • Soporte de abyo software ([email protected], primera respuesta en un día laborable; el nivel Enterprise mediante Private Offer añade un SLA de 24/7 con tiempo de respuesta de una hora para incidencias críticas)

Casos de uso

Equipos que reemplazan Nexus o Artifactory con un único binario que no requiere JVM ni base de datos externa para funcionar

Equipos que buscan un repositorio de artefactos compatible a nivel de protocolo (wire-compatible) que funcione con los clientes existentes de Maven, npm, pip, cargo, docker y helm sin realizar cambios

Un registro de paquetes de un solo nodo, de inicio rápido y baja sobrecarga para pipelines de CI/CD

Ejecución de un repositorio compatible con mirrors públicos que permite lecturas anónimas a la vez que protege las escrituras mediante autenticación

Preguntas frecuentes

¿Qué ecosistemas de paquetes son compatibles?

v0.1.0 cuenta con 12 de 18 protocolos totalmente integrados con pruebas de conformidad in-tree: Maven, npm, OCI / Docker Registry v2, PyPI (familia PEP 503), Cargo (sparse index), Go module proxy, Raw/Generic, NuGet v3, RubyGems (Compact Index), Helm (classic + OCI), APT y YUM/DNF. Los seis restantes (Conan, Conda, CRAN, Hex, CocoaPods, Bazel) están declarados en el alcance y devuelven 501 hoy. Sinceramente, esos protocolos no implementados aún no funcionan.

¿De verdad no necesita JVM ni base de datos externa?

Correcto. FerroRepo se ejecuta como un solo proceso sin JVM, persistiendo los metadatos en una base de datos SQLite integrada y los blobs en un volumen local o almacenamiento de objetos. No hay ninguna base de datos externa que administrar. Mientras que un Nexus o Artifactory clásico necesita una JVM, gigabytes de heap y una base de datos externa antes de servir un solo artefacto, FerroRepo lo reemplaza con un único binario endurecido que se inicia en mucho menos de un segundo en una instancia pequeña.

¿Cómo se organiza el almacenamiento?

El almacenamiento está organizado en niveles hot/warm/cold con deduplicación de blobs direccionable por contenido. El backend de blobs es intercambiable entre S3 / GCS / Azure / MinIO mediante object_store, mientras que los metadatos residen en una base de datos SQLite integrada.

¿Cómo funciona la autenticación?

La autenticación está activada por defecto con una postura de seguridad por defecto. Se permiten las lecturas anónimas, mientras que cada escritura y acción de administración requiere un principal autenticado con el alcance correcto. Se admiten usuarios integrados o la federación con un emisor OIDC externo, y se genera una contraseña de administrador aleatoria única en el primer inicio — nunca una contraseña por defecto o compartida.

¿Se puede escalar en múltiples nodos?

Actualmente no. La topología compatible es de un solo nodo (un solo binario) con metadatos de SQLite y el nivel de blobs en S3. Una topología multinodo con escalado horizontal y metadatos de Postgres está en la hoja de ruta y aún no es compatible. Sinceramente, no se ofrecen configuraciones multinodo en este momento.

Modelo de precios

Tarifa horaria de software + EC2 (clase t4g / c7g / m7g / r7g, Arm). Medición por tipo de instancia.

Obtener en AWS Marketplace