Skip to the content.

ECM architecture

ECM architecture has the following structure:

ECM architecture

At the core the content is encrypted using Go standard library and stored on your file system as encrypted files. These files can be safely be transported by any protocol without additional encryption (but of course you can add an additional encrypted transfer protocol, e.g. HTTPs).

The crypt module provides implementation of different ciphers. Currently we support encryption using AES and NaCl ciphers.

The Vault module is just a wrapper around a file system to organize your encrypted files into vault records. Its APIs allow it to read and encrypte/decrypt existing files.

The sync module provides the ability to sync encrypted files among different providers. Here we rely on rclone library which provides support for a variety of cloud providers. So far we enabled dropbox, local, pcloud and sftp backends. And, dropbox backend is used in ECM Native UI application.

The cli module provides command line implementation.

The server module provides web server which includes:

The ui module provides an ECM Native UI application based on fyne.io framework. This UI provides identical look-and-feel across multiple platforms, e.g. Linux, Windows, macOS and mobile.

And, wasm module implements WebAssembly extension which can be used in browsers. So far we implemented and tested only Chrome based extension.