[neomutt-devel] Code Libraries

Richard Russon rich at flatcap.org
Sun Oct 29 15:26:19 CET 2017


Now there's a new one, libconn, making five:
    libmutt, libhcache, libimap, libncrypt, libconn

Each library helps to untangle the code by grouping similar functions
and reducing dependencies.

The goal is that each library is:
- Self-contained (it may rely on other libraries)
- Independently testable (i.e. without using NeoMutt)
- Fully documented
- Robust

You can read about the libraries in the Code Docs:
    https://www.neomutt.org/code/pages.html

## libmutt - Library of shared functions

Description: Shared code for handling strings, files, dates, etc
Dependencies: None
Documentation: Full

To Do:
- Make functions more robust
- Create tests

## libhcache - Header cache API

Description: Six database backends for storing email headers
Dependencies: Some
- Global variables
- Some NeoMutt functions
Documentation: Full

To Do:
- Make the Header Cache independent of NeoMutt 

## libimap - IMAP Network Mailbox

Description: Handle connection and data transfer for an IMAP server
Dependencies: Some
- Global variables
- Many NeoMutt functions
Documentation: Full

To Do:
- Reduce its dependencies to libmutt and libconn

## libconn - Connection Library

Description: Network connections and their encryption
Dependencies: Lots
- Global variables
- Some NeoMutt functions
Documentation: Full

To Do:
- Remove its dependencies on NeoMutt functions

## libncrypt - API for encryption/signing of emails

Description: Encrypt/decrypt/sign/verify emails
Dependencies: Lots
- Global variables
- Many NeoMutt functions
Documentation: Partial

To Do:
- Reduce complexity
- Separate PGP and SMIME APIs
- Document
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://mailman.neomutt.org/pipermail/neomutt-devel-neomutt.org/attachments/20171029/8352df86/attachment.sig>


More information about the neomutt-devel mailing list