Here are some ideas that might make it into later versions. + = started - = not started ? = not sure to included it * = planned ? - Use the DBUS protocol instead of libassuan. Better asynchronous IO. More language bindings. Better handling of large amounts of data. Might be better to hack libassuan though since DBUS is a binary protocol. ? - Port to pthreads. Supports SMP and is alot faster. I tried this but was having problems with locking and portability (FreeBSD). I don't think it's really a problem right now unless there are a bunch of clients connecting. * - Use libgpgme to encrypt the data file. This will let pwmd use a secret GnuPG key. * - Use gpg-agent for password retrieval. ? - Make a standard that applications should follow when accessing or storing the XML elements. This way two clients (say, one for console and another for GUI) that require the same data (mail client) could use the same element paths and not duplicate each others data. For example, a POP3 client would require a hostname, username, password and optional port along with an ssl request (fingerprint, certificate), etc. The root element of the service might have an attribute "service=pop3" along with "default=1" or "active=1" (if you have more than one POP3 account) so all the client needs to get the pop3 server info is the type of service ("pop3" here). The client would then loop through the LIST command output and search for the required service attribute. Using the XPATH command would be faster (especially over remote connections) but it won't resolve "target" attributes and the output is raw XML which doesn't have TAB delimited elements.