Memri / Getting Started / Components

Components

Memri Diagram

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.

Client(s)

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 web client and an iOS/macOS client app.

Your data is encrypted during all the various stages of its use. Access to a Pod is protected by the personal key of its owner. Only a client with the correct key can access the data in the Pod.

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.