O programa reutiliza muitas idéias por trás do outro proxy famoso, seu predecessor apt-cacher 1.x (que foi escrito em Perl). Em contraste com o apt-cacher, diferentes aspectos foram declarados como alvos principais durante o desenvolvimento do apt-cacher-ng:
- implementação leve - permite o uso em sistemas com pouca memória e recursos de processamento
- rosqueamento interno (nativo) - evitando a bifurcação do processo sempre que possível, evitando kludges para sincronização de pseudo-threads, evitando confiar em recursos especiais do sistema de arquivos para operações internas sempre que possível
- suporte real (eficaz) ao pipelining HTTP, usando um cliente interno com controle de fluxo nativo (com o bom efeito colateral: redução da sobrecarga de recursos e minimização de possíveis pontos de falha)
- evitando características que causam inchaço demais e a funcionalidade pode ser fornecida por recursos nativos do sistema operacional
- conteúdo confiável, mas eficiente, mesclado no pool de pacotes local, evitando a entrega de dados incorretos.
Como no apt-cacher, o rastreamento explícito de arquivos dinamicamente alterados e inalterados é estabelecido, e o uso em ambiente não-Debian é suportado.
Longa história: nem todos os objetivos foram alcançados. O plano inicial de usar bancos de dados em segundo plano para mesclar qualquer download de qualquer local arbitrário foi descartado devido a considerações de complexidade e desempenho, e heurísticas confiáveis também não foram encontradas. Em vez disso, foi criada uma solução semi-automatizada que utilizava arquivos analisáveis por máquina com informações espelhadas, como a disponível para espelhos Debian no repositório CVS do Debian.