Sobre o projeto
Reprobuild é um sistema de build unificado que substitui ferramentas fragmentadas como Dockerfiles, Nix flakes, Makefiles e pipelines de CI por um único grafo de build verificado em tempo de compilação. Sua inovação central é modelar não apenas arquivos, mas estados — como serviços em execução, configurações de sistema ou recursos de nuvem — como nós no grafo. Isso permite cache consistente, hermeticidade e rollback entre builds, ambientes de desenvolvimento e infraestrutura.
Os principais recursos incluem a descoberta automática de dependências através do monitoramento do sistema de arquivos (via io-mon), recarregamento dinâmico de código (hot reloading) entre projetos interdependentes (por exemplo, editar Cairo enquanto compila o Firefox) e desenvolvimento com configuração zero via `repro develop`. Os projetos são definidos em uma DSL Nim tipada (`repro.nim`), permitindo suporte de IDE e validação em tempo de compilação de versões de ferramentas, etapas de build e configurações de serviço.
Ele suporta Windows, Linux e macOS; integra-se com provedores Terraform; e oferece builds distribuídos e sharding de testes. Ao contrário do Bazel ou Nix, ele é fornecido como um único binário nativo, sem daemons ou serviços remotos. O Reprobuild impõe a reprodutibilidade através do endereçamento de entradas por conteúdo, verificando a igualdade de saída byte a byte e gerando SBOMs e atestações automaticamente.
Ele também alimenta o ReproOS, uma distribuição Linux construída inteiramente a partir do código-fonte usando o mesmo modelo de grafo. Os comandos de CLI abrangem a compilação, testes, gerenciamento de serviços, sincronização de workspace e gerenciamento de infraestrutura local. O sistema possui licença MIT, com serviços comerciais opcionais para caches hospedados e uso empresarial.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.