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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.