This is the monorepo for the TypeScript version of Hyper Hyper Space, version 3.0 (roadmap).
Hyper Hyper Space is a data sync engine focused on Authority Decentralization. It enables applications to run locally with full autonomy, and to sync their state securely over the open Internet even in the presence of malfunctioning or adversarial peers. Furthermore, it provides support for sophisticated behavioral rules, intended to enable applications that foster cooperative and productive interactions.
This new version has two main goals:
-
Greater modularization. Previous versions of Hyper Hyper Space were bundled as a monolithic JavaScript app for usage in web browsers. While we still see the browser as a possible target, we're now trying to build a collection of modules that can be re-used on any platform. See below for the modules that have been ported to v3 so far.
-
A new data model. We've developed a new formalism for coordination-free replication, Monotone View Types, in which observations are monotonic but explicitly version-scoped, allowing historical views to be refined as additional information becomes available. MVTs are a powerful monotonic transformation mechanism, that helps application developers create coordination-free approximations for applications in any domain. Learn more in the
replicamodule [local] [github].
We're completing the data modeling layer in the replica module. While the implementation of Monotone View Types is complete, we're working on a concurrency model for Monotone View Type composition, based on the idea of State-Observation-as-Data (SOaD). Once that's complete, the synchronizer will need to be ported over and adapted to work on this new model. After that, adapters and tooling for using the synchronizer with existing information systems (mostly RDBMs) will be developed. Please see the replica module and the roadmap for details.
This monorepo is organized as a collection of modules. This is of course WIP.
modules/replicaA replica that can synchronize Monotone View Types [local] [github]modules/dagA DAG-based append-only log with fast fork/merge & covering operations [local] [github]modules/cryptoCryptographic primitives for hashing, encoding, randomness [local] [github]modules/jsonJSON module for content-based addressing data structures [local] [github]modules/utilCollection of helper utilities used across HHS v3.0 [local] [github]
To build the system, run
npm install
npm run build
