|
|
![Memri components diagram](http://memri.docs.memri.io/docs.memri.io/img/diagram_new.svg)
|
|
|
|
|
|
## The Pod
|
|
|
|
|
|
The Pod — Personal Online Datastore — is the place where your data is safely stored, with which you interact via the client(s), enhanced by the features added by plugins.
|
|
|
|
|
|
It’s written in Rust with a SQLite database, providing a graph with the connections between your data, and using a schema to describe how elements are structured. It organizes content by types of items (what kind of properties does a person/email/photo have), relations between items (E.g. “John is my brother”) and relations between types (a blog is also a website).
|
|
|
|
|
|
The Pod provides an HTTP interface to access to your data from the client or a plugin. You can check out the HTTP API in the Pod documentation.
|
|
|
|
|
|
You can download the source code to host your Pod on your own hardware.
|
|
|
|
|
|
|
|
|
## The Client
|
|
|
|
|
|
The client is the interface that you use to access the information on your pod. It is basically a data browser in which you can sort, search, and navigate through your data. Currently we have a client under development in Flutter and iOS/macOS.
|
|
|
|
|
|
The client uses CVU language (c-view or Cascading Views) for defining the interfaces in the app, which you can customize in the CVU Editor to maximize the usefulness of your data and its resulting knowledge, or you can create your own interface for a specific use. It is an easy to use language that combines the best of HTML and CSS. Check out the tutorials on customizing the UI.
|
|
|
|
|
|
## Plugins
|
|
|
|
|
|
Memri’s plugins system allows new features to be added to the pod. Plugins are started by making an API call to the Pod. The Pod will install the plugin (if not installed already) and execute it with the passed settings.
|
|
|
|
|
|
Plugins can immediately start doing things, or run in the background as a daemon, waiting for an incoming event to start doing things. |