Skip to main content

Introduction

About 1 min

Introduction

DXOS enables the development and operation of internet scale, privacy preserving applications.
Read more motivation.

Note

DXOS is under development and will continue to change frequently.
Your feedback is most welcome on GitHubopen in new window and Discordopen in new window.
See our Contribution Guideopen in new window about contributing code.

DXOS is a group of technologies that work together:

  • ECHO - Database and reactive state container for offline-first, real-time, collaborative apps.
  • HALO - Identity for decentralized apps.
  • KUBE - Self-contained infrastructure for hosting and operating decentralized apps.

Compare DXOS applications to client-server web applications:

web2 AppsDXOS Apps
How code is servedserved by web serversserved by web servers
How data is storedon the serveron the client
How data is exchangedclient to server (and server to client) via HTTP or Web Socketspeer to peer via WebRTC
How identity is establishedservers issue session tokens after validating credentials with methods like OAuthpeers obtain identity locally from the HALO PWA or another chosen application installed on the same client device which contains the user's wallet of identity keys.

ECHO

ECHO (The Eventually Consistent Hierarhical Object store) is a peer-to-peer graph database written in TypeScript. ECHO connects to other peers directly via WebRTCopen in new window, and continuously replicates writes with those peers using the Automerge CRDTopen in new window. ECHO supports multiple concurrent writers collaborating on objects and text. Peers going offline and returning to reconcile changes with the online swarm are also supported.

Learn more about ECHO.

HALO

Establishing user identity in a non-authoritative internet is hard. Every peer has to decide how to trust each other. HALO is a set of components and protocols for decentralized identity and access control designed around privacy, security, and collaboration requirements.

Learn more about HALO.

KUBE

Running an application requires a lot of supporting technology: process monitoring, observability, deployment management, DNS, SSL, ..., etc. KUBE is a compact, self-contained binary that runs anywhere and provides essential services for applications.

Learn more about KUBE.