The name of this backend is apt

It supports the Advanced Packaging Tool used by Debian and its derivates. The
implementation was done in Python. The communication between the daemon and
the backend process happens via stdin and stdout, it is a so called spawned
backend using a dispatcher to allow the execution of several commands in a row.

To provide a tremendously fast search function a Xapian database is used.
It is provided by Enrico Zini's apt-xapian-index. Debtags will be used to 
enhance the quality of the search results further.

A list of implemented functions are listed in the PackageKit FAQ:

http://www.packagekit.org/pk-faq.html

Feel free to send comments or bug reports to the PackageKit mailing list
or to the author directly.

Plugin support
--------------
You can create plugins to extend this backend to extend its functionality.  The
only supported plugin type is for the "what_provides" PackageKit call for now,
as this is generally the most useful for plugins.

In your module "my_plugin_module_name", implement a

      def my_what_provides(cache, type, search):

function which returns additional packages for the given type
(packagekit.enum.PROVIDES_*) and search string. The plugin should raise
NotImplementedError if it cannot handle the given type.

Register the plugin as an entry point (via python setuptools) in setup.py:

   setup(
       [....]

       entry_points="""[packagekit.apt.plugins]
what_provides=my_plugin_module_name:my_what_provides
""",
       [...])

You can register arbitrarily many plugins, they will be all called and their
resulting package lists joined.
