An semi-optional daemon that runs in the background and manages requests. This frees up many people to write front-ends that interface with just the daemon and don't worry so much about the underlying API. It also enables people who wish to use non-python langauges because all they have to interface with is the daemon and not python itself. It also makes RPC-portage calls possible since a static daemon is listening. Startup times are also reduced and the daemon could keep cache updates in the background. Semi-optional means: Administrator specifies whether the daemon is always on or only present when needed. The first is obviously easier to implement but unneeded on many systems that would not use portage often. In this case front-ends would have to detect the presence of a daemon ( if( /var/run/portage-daemon ) fex ), and if one is not there would have to fork one off to service the front-end requests. It's a bit messy, not sure of another way to work around it. I talked to ferringb a bit on IRC about this, looking for other opinions criticisms.
*** This bug has been marked as a duplicate of 10149 ***