Code

FlowingMail is composed by several sub-projects.

Some sub-projects are also released as individual open source projects.

Sub projects

 


EverywhereDHT

This is the distributed hash table used by FlowingMail. It derives from the Kademlia protocol.

The project doesn’t include the transport protocol, but supplies base classes that define the interface for the classes that will implement the transport.

Source codehttps://bitbucket.org/flowingmail/everywheredht

Status: in progress and released (by Paolo)


Goingthere

This is the transport protocol for the DHT.

It includes nodes authentication & communication encryption between the nodes. This doesn’t include the mail encryption & transport, only the transmission of the DHT commands.

It includes the UPNP protocol to open external ports on home routers.

Source code: not yet released

Status: just started (by Paolo)


Alsohere

Persistent storage for the DHT. Uses sqlite as database.

Source code: not yet released

Status: in progress (by Mike)


Risk analysis tool

This is the tool we used internally to manage the risks and requirements.

Source codehttps://bitbucket.org/flowingmail/riskanalysis/overview

Status: in progress (by Paolo)


Onlyhere

Persistent storage for the mail, contacts, cached public keys of most contacted people

Source code: not yet released

Status: not started (by Mike)


FlowingMail SDK

FlowingMail library that uses the other sub-projects to send/receive emails

Source code: not yet released

Status: planning (by Paolo)


FlowingMail desktop client

Qt based application that uses the FlowingMail SDK to send/receive emails.

Source code: not yet released

Status: in progress (by Mike)


FlowingMail Android client

Java application that uses the FlowingMail SDK (via JNI) to send/receive emails.

Source code: not yet released

Status: not started