[Distutils] pypi protocol

holger krekel holger at merlinux.eu
Mon May 27 09:19:29 CEST 2013


Hi Jonas,

On Sun, May 26, 2013 at 22:08 +0200, Jonas Geiregat wrote:
> Hello,
> 
> I'm fairly interested in the internals of pypi.
> 
> Ultimately pypi is a HTTP interface to a package database. 
> I went looking for a document, blog post or anything describing the communication between pypi client and server.
> 
> I ended up reading pypiserver's source code to find out the internals. 
> 
> Is there a reason why there haven't been a PEP describing the pypi interface ?

The protocol pip/easy_install use with pypi.python.org is fairly minimal.
Carl and me described it in PEP438 and a number of people reviewed it
so it should be rather accurate.  See particularly

    http://www.python.org/dev/peps/pep-0438/#history-and-motivations-for-external-hosting

This does not discuss the XMLRPC/json interfaces and ASFAIK there
are few pypi implementations apart from the main one who implement them.

For implementation of the basic protocol, you can look into pip/index.py
or checkout my tested implementation in devpi-server here:

    https://bitbucket.org/hpk42/devpi-server/src/029db81602bccece0f58be9a66cd67f640ac353a/devpi_server/extpypi.py?at=default#cl-44

cheers,
holger


More information about the Distutils-SIG mailing list