Fork me on GitHub

FileTrain

FileTrain API is a platform to synchronize arbitrary data, with the following advantages: The FileTrain libraries provide an interface to upload and download data and they provide functionality to check whether newer instances of a specific set of objects exist. Additionally, they allow the data to be sorted and categorized in a directory tree so that applications are able to selectively download and synchronize the data in which the applications are interested.

Use Cases

FileTrain API is suitable for many scenarios in which data needs to be exchanged, including the following:

Architecture

FileTrain API uses a client-server architecture to enable clients to synchronize data between clients and to persistently store data on a central server. Data is synchronized as objects (opaque blocks of binary data, similar to files in a file system) in virtual directories (similar to directories in a file system). These directories can form trees, as in a regular file system, and are categorized as collections (where each collection forms the root of a directory tree and is the equivalent of a file system). This flexible structure can be mapped onto any kind of data synchronization problem. All data and all directory and object names are encrypted on the client-side.

There are two types of servers: one central master server which keeps track of all users and maintains meta information about which information is shared with whom, and various data servers which store the synchronized data and which coordinate real-time dissipation of updates to all connected clients. All these servers as well as the client-side libraries are open-source software:

Status

FileTrain API has already been implemented into different test projects, as well as, in slightly different form, in the FileTrain file synchronization service. Altough it is still under development, it has been found working. As already indicated, there will be client releases for C++ and JavaScript (client-side JavaScript and NodeJS) soon.

License

FileTrain API is available under GNU Lesser General Public License v3.0.

Contact

FileTrain API is maintained and used by FileTrain UG (haftungsbeschränkt) from Karlsruhe, Germany, as the basis of the Dropbox-like cloud storage FileTrain.

For further information, please give us a call (+49 721 96496789) or write an E-Mail to info@filetrain.de.

Impressum