The following is a list of known places for possible improvement to
the GMime library. This list of tasks in no way indicates priority,
that is to say that there is no rhyme or reason to the order that the
tasks are presented in.

GMime 3.4+ Planning:
====================

- Would it be valuable to add GMimeMultipartAlternative and GMimeMultipartRelated
  subclasses (like MimeKit)? Or would it just be better to fold that functionality
  into GMimeMultipart?

- What about GMimeMultipartReport, GMimeMessageDeliveryStatus, and
  GMimeMessageDispositionNotification?

- Provide g_mime_message_get_text_body(), get_html_body(), get_attachments()-like
  API's similar to what MimeKit offers?

- Implement DKIM-Signature support?

- Implement Pretty-Easy-Privacy support? What is that? Is that something that makes
  sense to have in GMime? Or does it belong at a higher level?

GMime 4.0 Planning:
===================

- Remove g_mime_stream_close()

- Remove g_mime_stream_filter_get/set_owner() - these will no longer
  be necessary once close() is removed.

- Rename g_mime_message_[get,set]_mime_part() to g_mime_message_[get,set]_body()?
  This would require me to rename g_mime_message_get_body() to
  g_mime_message_get_text_body()?

- Have GMimeHeader subclasses for various headers. These could have specialized
  accessors to get to parsed values as well as provide customized folding logic
  that all lives in gmime-header.c right now. The most useful subclasses might be:
    - GMimeAddressHeader
    - GMimeReceivedHeader
    - GMimeMessageIdHeader
    - GMimeReferencesHeader

- Change GMimeCryptoContext API's to take InternetAddressMailbox's to specify
  identities to sign and/or encrypt to? Then we could have something like
  MimeKit's SecureMailboxAddress that has a GPGME Key ID or a fingerprint or
  something to make it easier for developers to specify a key.

Future Planning:
================

- Modify GMimeStream APIs to take GCancellable and GError arguments.

- Modify GMimeParser APIs to take GCancellable and GError arguments.

- Modify write_to_stream() methods to take GCancellable and GError arguments.


All questions and comments should be directed toward the author,
Jeffrey Stedfast <fejj@gnome.org>
