Artifactory has a great set of remote repository types available for use with practically any package manager. The system underlying this proxying mechanism is actually quite complex. The main problem is how to handle upstream metadata. Normally, Artifactory's remote repository system relies on the client making the correct requests. This is how the generic remote repository functions (i.e., the downstream client must make a correct GET request to download a given remote package).
For other package types, the clients are more sophisticated and require special care. Each package manager type uses a metadata system to determine which packages and dependencies to download. Some examples include Maven's maven-metadata.xml file, PyPI's simple.html file, and YUM's repodata/* files. As the syntax for all of these package managers are unique, Artifactory has had to solve each complex metadata system.
For other package types, the clients are more sophisticated and require special care. Each package manager type uses a metadata system to determine which packages and dependencies to download. Some examples include Maven's maven-metadata.xml file, PyPI's simple.html file, and YUM's repodata/* files. As the syntax for all of these package managers are unique, Artifactory has had to solve each complex metadata system.