ztipnis / imaplw

Lightweight IMAP Server

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

imaplw - WIP Build Status GitHub top language Codacy Badge

Description

A Lightweight IMAP server build in modern C++

Goals

The goal of this project is to balance extensibility with vision and footprint: this means that the application should be easily extended (i.e. to add additional IMAP commands), but also to not do anything beyond what is outlined by the IETF, and to utilize the minimum possible resources. This is achieved mainly through:

  • MVC-esq architecture: The program is broken up into a command parser/router (IMAPProvider), an Authentication Manager, and a Data Manager. The Authentiction and Data managers are abstract classes which are subclassed to implement the actual functionality.
  • Modern C++ (17) with a focus on code readability over all else.
  • Event-based architecture achieved through EPoll and KQueue

A Note on Licensing

This project relies on LibreSSL and Boost for some minor parts of its functionality. LibreSSL and Boost are each licensed under permissive licenses, and the remainder of the code is licensed under the MIT License. For license inquiries, please open an issue. For more info on the specific licenses, see LibreSSL.License, Boost.License, and LICENSE

About

Lightweight IMAP Server

License:MIT License


Languages

Language:C++ 52.9%Language:CMake 37.6%Language:Python 6.9%Language:Shell 2.5%