El programa reutiliza muchas ideas detrás del otro proxy famoso, su predecesor apt-cacher 1.x (que ha sido escrito en Perl). A diferencia de apt-cacher, se han declarado diferentes aspectos como objetivos principales durante el desarrollo de apt-cacher-ng:
- Implementación ligera: permite el uso en sistemas con poca memoria y recursos de procesamiento
- subprocesamiento interno (nativo): evite la bifurcación del proceso siempre que sea posible, evite kludges para la sincronización de pseudohilos, evite depender de características especiales del sistema de archivos para operaciones internas cuando sea posible
- Soporte real (efectivo) de canalización HTTP, utilizando un cliente interno con control de flujo nativo (que tiene el efecto secundario: reducción de la sobrecarga de recursos y minimización de posibles puntos de falla)
- evitando la featuritis donde causan demasiada hinchazón y la funcionalidad puede ser proporcionada por las características nativas del sistema operativo
- contenido confiable pero eficiente que se fusiona en el conjunto de paquetes local, evitando la entrega de datos incorrectos.
Al igual que con apt-cacher, se establece el seguimiento explícito de archivos cambiados dinámicamente y sin cambios, y se admite el uso en entornos que no sean de Debian.
Larga historia: no se han logrado todos los objetivos. El plan inicial de usar bases de datos en segundo plano para fusionar cualquier descarga desde cualquier ubicación arbitraria se ha abandonado debido a consideraciones de complejidad y rendimiento, tampoco se pudo encontrar heurística confiable. En cambio, se ha creado una solución semiautomatizada que utiliza archivos analizables por máquina con información reflejada, como la disponible para las réplicas de Debian en el repositorio CVS de Debian.