Skip to main content

Introduction

About 1 min

Introduction

DXOS provides developers with everything they need to build real-time, collaborative apps which run entirely on the client, and communicate peer-to-peer, without servers.

DXOS applications work offline, share state instantly when online, and leave end-users in control of their data and privacy.

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:

Client-Server Web 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 via HTTP or Web Socketspeer to peer via WebRTC
How identity is establishedservers issue session tokens after validating credentials with methods like OAuthclients generate their own private/public key pairs and use them to sign messages in the database.

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 data with those peers using the Automergeopen in new window CRDTopen in new window. ECHO supports multiple concurrent writers collaborating on arbitrary objects and text. Clients may perform writes while offline, reconciling with the swarm when returning online.

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 hosting services for applications.

Learn more about KUBE.