Ex-CTO da NPM desenvolve repositório de pacotes distribuídos Entropic

CJ Silverio, que deixou o cargo de CTO da NPM Inc no final do ano passado, apresentado novo repositório de pacotes Entrópico, que está sendo desenvolvido como uma alternativa distribuída ao NPM, não controlada por uma empresa específica. O código da Entropic é escrito em JavaScript e distribuído por licenciado sob Apache 2.0. O projeto está em desenvolvimento há apenas um mês e está em fase inicial de protótipo, mas já suporta operações básicas como conexão, publicação e instalação de pacotes.

O motivo da criação do Entropic é a total dependência do ecossistema JavaScript/Node.js da NPM Inc, que controla o desenvolvimento do gerenciador de pacotes e manutenção do repositório NPM. É aqui que uma empresa com fins lucrativos tem o controle exclusivo de um sistema do qual dependem milhões de desenvolvedores e aplicativos JavaScript e que processa bilhões de downloads de pacotes por semana.

Uma recente série de demissões de funcionários, mudanças de gestão e o flerte da NPM Inc com investidores criaram uma sensação de incerteza sobre o futuro da NPM e uma falta de confiança de que a empresa defenderá os interesses da comunidade e não dos investidores. De acordo com Silverio, os negócios da NPM Inc não são confiáveis ​​porque a comunidade não tem condições de responsabilizá-la por suas ações. Além disso, o foco na obtenção de lucro impede a implementação de oportunidades que são primárias do ponto de vista comunitário, mas que não geram dinheiro e requerem recursos adicionais, como o apoio à verificação de assinaturas digitais.

Silverio também duvida que a NPM Inc esteja interessada em otimizar as interações com o seu backend, pois isso levará a uma diminuição nos fluxos de dados que são potencialmente interessantes do ponto de vista da monetização. Cada vez que você executa o comando "auditoria npm» o conteúdo do arquivo é enviado externamente pacote de bloqueio, que inclui muitas informações interessantes sobre o que o desenvolvedor faz. Em resposta, vários membros proeminentes da comunidade JavaScript/Node.js começaram a desenvolver uma alternativa que não era controlada por empresas individuais.

O sistema Entropic usa o princípio de uma rede federada, na qual um desenvolvedor, usando seus próprios recursos, pode implantar um servidor com um repositório de pacotes que ele usa e conectá-lo a uma rede distribuída comum que une repositórios privados díspares em um único todo. Entrópico envolve a coexistência de muitos repositórios, interagindo com eles como parte de um fluxo de trabalho normal.

Todos os pacotes são separados por namespaces e incluem informações sobre o host que hospeda seu repositório primário.
Um namespace é essencialmente o nome do proprietário do pacote ou grupo de mantenedores que têm o direito de lançar atualizações. Em geral, o endereço do pacote se parece com “[email protegido]/nome-do-pacote".
Metadados e informações de dependência são definidos no formato TOML.

Se um pacote for colocado em um repositório local e tiver dependências de outros repositórios, esses pacotes serão espelhados no repositório local. Isso torna o repositório local independente e inclui cópias de todas as dependências necessárias. Existe uma camada para interagir com o repositório NPM clássico, que é tratado como um arquivo somente leitura. Você também pode instalar pacotes do NPM usando ambientes Entrópicos implantados localmente.

Para gerenciamento, são fornecidas ferramentas de linha de comando que simplificam a implantação de repositórios em sua rede local. Entropic oferece soluções completamente novas API orientada a arquivos e um sistema de armazenamento que minimiza a quantidade de dados baixados pela rede. O Entropic é apresentado como um sistema universal que pode ser usado para criar repositórios para pacotes em qualquer linguagem de programação, mas mesmo assim o Entropic é desenvolvido com JavaScript em mente e é mais adequado para projetos nessa linguagem.

Fonte: opennet.ru

Adicionar um comentário