MaidSafe Platform Libraries

The MaidSafe Platform is enabled when the individual MaidSafe Libraries are combined.

MaidSafe

A Meta project that allows all MaidSafe libraries to be installed with most dependencies already in place. This base container of dependent libraries and build system is designed to allow developers a very simple mechanism to install and use these libraries and applications. This system allows users to install, build, compile, test and publish all test results publicly for all MaidSafe code.

> More Information

Common

Utilities and common features for the majority of MaidSafe libraries.

> More Information

Drive

A cross platform virtual drive with an easy to use API. Uses Fuse for Linux systems, OSXFuse for OSX and Eldos' Callback File System for Windows.

> More Information

Reliable UDP

TCP is a reliable connection oriented protocol that cannot traverse NAT routers (with any real capability) UDP is an unreliable connectionless protocol that can traverse many NAT routers with ease.

MaidSafe-RUDP is a reliable pseudo connected protocol that can traverse more NAT routers than plain UDP when used in conjunction with MaidSafe-Routing. Impervious to 'man in the middle' attacks with no requirement for a key exchange protocol to exist at the network level.

> More Information

Routing

A Distributed Hash Table (DHT) that utilises Kademlia-like routing tables for scalability with D1HT speed. Used in conjunction with RUDP this library will provide a very robust DHT implementation.

> More Information

Encrypt

This is NOT an encryption algorithm per se', rather this is an algorithm that utilises existing very well tested algorithms (predominantly AES 256 in this case). The library provides a sliding window algorithm that can encrypt data of any length, even if written in a random manner (or parts overwritten during write). It is very useful for encrypting disk based storage of huge data or writing data encrypted to a key value store in a manner that cannot be algorithmically reversed (as in reversing AES or similar algorithms).

The chunks of data provided are self checking and the process is recursive, so the keys output can themselves be concatenated into a large file and passed back into the algorithm, creating a single key for any size of data set.

> More Information

Passport

Creates cryptographically secure Public Key Infrastructure mechanism via a mixture of asymmetric encryption currently RSA and secure hashing currently SHA512. With this library and a secure DHT such as MaidSafe-Routing there is no requirement for a certificate authority.

Removing another server system and the related human administration, allows developers to create autonomous distributed secure systems. MaidSafe uses this feature to ensure nodes (and humans) can be securely validated and regulated in a mathematical manner that is as fair as the rules developers create and not via any human administrator.

> More Information

Network Filesystem

This library provides a RESTfull like API for clients to connect to a MaidSafe Platform network. Client interactivity with the network will create the appropriate policies to be passed to the policy based class design environment. This library can be considered a helper library to connect clients such as LifeStuff to distributed networks such as the MaidSafe Platform.

> More Information

Vault

A self healing, fully distributed data store that allows an exciting array of applications to be built. This library and associated components (all from the MaidSafe repositories) can provide fault tolerant, massively distributed networks that will allow application providers to consider data centres a thing of the past, increasing profitability and reliability as well as providing their customer base with absolute freedom, security and privacy (if used in conjunction with LifeStuff).

The Vault Library allows companies to effectively move their data centres to their clients, removing the requirement (and cost) for forward provisioning and planning of expensive, climate unfriendly buildings. More importantly application providers can focus on application provisioning and leave all the networking and security to MaidSafe.

> More Information

Client

Client is a relatively thin wrapper library that provides an API to the MaidSafe Platform. This allows data storage and manipulation (structured and unstructured), reliable and secure communications and the ultimate privacy protection for people using the network and associated applications.
This library provides the API that allows data sharing, both public and private. Public shares allow the creation and running of web sites, blogs, microblogs, social networks which in turn allow people to share ideas, research, suggestions and hope!
The Client library allows many applications to be built that can provide the features listed and much more, this is a prime reason to open up the complete suite of MaidSafe libraries and applications to every developer in the world.

> More Information

Private

This library contains local data storage management and network managed data types. In addition this library includes the lifestuff manager API. This is an installed application that is responsible for checking for upgrades (in real time), installing and testing upgrades as well as starting and restarting any vaults (on failure or planned). The LifeStuff Manager manages private keys for vaults and passes keys through a local TCP network. This is a one-way mechanism and any vault compromised cannot read the keys of the local disk.

Prior to Open Sourcing, the library "Private" was used internally to maintain patented code that could not be released to the public (MaidSafe patents), so this library will potentially split and create new repositories or be subsumed into existing repositories.

> More Information