El ex CTO de NPM desarrolla el repositorio de paquetes distribuidos Entropic

CJ Silverio, quien dejó su puesto como CTO de NPM Inc a fines del año pasado, presentado nuevo repositorio de paquetes entrópico, que se está desarrollando como una alternativa distribuida a NPM, no controlada por una empresa específica. El código de Entropic está escrito en JavaScript y distribuido por Licenciado bajo Apache 2.0. El proyecto sólo lleva un mes en desarrollo y se encuentra en la etapa de prototipo inicial, pero ya admite operaciones básicas como conexión, publicación e instalación de paquetes.

El motivo de la creación de Entropic es la completa dependencia del ecosistema JavaScript/Node.js de NPM Inc, que controla el desarrollo del administrador de paquetes y el mantenimiento del repositorio de NPM. Aquí es donde una empresa con fines de lucro tiene el control exclusivo de un sistema del que dependen millones de desarrolladores y aplicaciones de JavaScript, y que procesa miles de millones de descargas de paquetes por semana.

Una reciente serie de despidos de empleados, cambios de gestión y el coqueteo de NPM Inc con los inversores han creado una sensación de incertidumbre sobre el futuro de NPM y una falta de confianza en que la empresa defenderá los intereses de la comunidad en lugar de los de los inversores. Según Silverio, no se puede confiar en el negocio de NPM Inc porque la comunidad no tiene la influencia para responsabilizarlo por sus acciones. Además, el enfoque en obtener ganancias impide la implementación de oportunidades que son primarias desde el punto de vista de la comunidad, pero que no generan dinero y requieren recursos adicionales, como el soporte para la verificación de firmas digitales.

Silverio también duda de que NPM Inc esté interesado en optimizar las interacciones con su backend, ya que esto conducirá a una disminución en los flujos de datos que son potencialmente interesantes desde el punto de vista de la monetización. Cada vez que ejecutas el comando "auditoría de NPM» el contenido del archivo se envía externamente bloqueo de paquete, que incluye mucha información interesante sobre lo que hace el desarrollador. En respuesta, varios miembros destacados de la comunidad JavaScript/Node.js comenzaron a desarrollar una alternativa que no estaba controlada por empresas individuales.

El sistema Entropic utiliza el principio de una red federada, en la que un desarrollador, utilizando sus propios recursos, puede implementar un servidor con un repositorio de paquetes que usa y conectarlo a una red distribuida común que une repositorios privados dispares en un solo todo. Entropic implica la coexistencia de muchos repositorios, interactuando con ellos como parte de un flujo de trabajo normal.

Todos los paquetes están separados mediante espacios de nombres e incluyen información sobre el host que aloja su repositorio principal.
Un espacio de nombres es esencialmente el nombre del propietario del paquete o del grupo de mantenedores que tienen derecho a publicar actualizaciones. En general, la dirección del paquete se parece a "[email protected]/nombre-paquete".
Los metadatos y la información de dependencia se definen en el formato TOML.

Si un paquete se coloca en un repositorio local que está vinculado por dependencias de otros repositorios, estos paquetes se reflejan en el repositorio local. Esto hace que el repositorio local sea autónomo e incluya copias de todas las dependencias necesarias. Hay una capa para interactuar con el repositorio NPM clásico, que se trata como un archivo de solo lectura. También puede instalar paquetes desde NPM utilizando entornos entrópicos implementados localmente.

Para la administración, se proporcionan herramientas de línea de comandos que simplifican la implementación de repositorios en su red local. Entropic ofrece algo completamente nuevo API orientada a archivos y un sistema de almacenamiento que minimiza la cantidad de datos descargados a través de la red. Entropic se promociona como un sistema universal que se puede utilizar para crear repositorios para paquetes en cualquier lenguaje de programación, pero, no obstante, Entropic se desarrolla teniendo en cuenta JavaScript y es más adecuado para proyectos en ese lenguaje.

Fuente: opennet.ru

Añadir un comentario