Sobre o projeto

VContainer é uma biblioteca de Injeção de Dependência (DI) de alto desempenho projetada especificamente para o Unity Game Engine. Ela enfatiza velocidade, alocação mínima de memória e tamanho de código reduzido, tornando-se uma alternativa eficiente a outros frameworks DI como Zenject. Os principais recursos incluem: - **Resolução Rápida:** Tipicamente 5-10x mais rápida que Zenject. - **Zero Alocação de GC:** Resolver instâncias não incorre em sobrecarga de coleta de lixo (excluindo instâncias geradas). - **Tamanho de Código Reduzido:** Poucos tipos internos e chamadas virtuais mínimas. - **Práticas DI Corretas:** API simples e transparente com recursos cuidadosamente selecionados para evitar complexidade. - **Contêiner Imutável:** Garante segurança de thread e robustez. Tipos de injeção suportados: injeção por Construtor, Método, Propriedade e Campo. Também fornece escopo flexível com escopos de vida aninhados, suporte assíncrono e integração com UniTask e ECS (beta). A instalação está disponível via UPM (URL Git), OpenUPM ou .unitypackage manual. A biblioteca requer Unity 2018.4 ou posterior. O uso básico envolve criar um LifetimeScope e registrar serviços, depois resolvê-los automaticamente. A biblioteca suporta bindings com chave, pontos de entrada (IStartable, IAsyncStartable) e criação dinâmica de escopos filhos para carregamento assíncrono de recursos. Uma janela de diagnóstico no Editor Unity ajuda a visualizar e depurar os registros e dependências do contêiner. VContainer é inspirado em Zenject, Autofac e MicroResolver, e é lançado sob a licença MIT.