Roadmap
The current roadmap has been completed at the end of August 2024. We are now working on establishing the next one.
-
a. Mutation
Generate a SparqlUpdate (SU-Set) for each Oxigraph transaction. keep Mutation metadata in triplestore.
-
b. Query
accept nextgraph URIs in SPARQL queries
-
c. Federated Query
accepted nextgraph URIs in SERVICE
-
d. OCap
OCAP enforcement in queries
-
e. Encryption at rest
data encrypted at rest for the RDF store
-
f. RDF-star
RDF-star and SPARQL-star adaptation to SU-set
-
g. Blanknodes skolemization
Blanknodes skolemization
-
h. SPARQL endpoint
Modify SPARQL endpoints to match the new URI API
-
a. Signature of commit
Signature of commit
-
b. Signature of snapshot
Signature of snapshot
-
c. P2P layer integration - metadata
Adapt the P2P layer for threshold signatures - metadata
-
d. Signature API
API to retrieve the commit signature and the PublicKeySet
-
a. Automerge-rs
Integration of automerge-rs
-
b. Yrs
Integration of Yrs
-
c. Prosemirror+Yjs
Integration of Prosemirror+Yjs
-
d. Codemirror+Yjs
Integration of codemirror+Yjs
-
a. Website and tools
Creation of a website at nextgraph.org detailing the project and offering a forum (Zulip) and a VCS (Gitea) for project management. source code will be mirrored on github too.
Visit the forum ! -
b. Documentation
Full documentation and specification
Read the docs -
c. Tutorials
Write tutorials, getting started guide
-
a. Three Stores of a Site
3 Stores of a Site
-
b. Containers
LDP containers
-
c. Cache
Cache is now called pining
-
d. UserStorage
Storage of all metadata and materialized state of documents locally
-
a. Verifier
Verifier API for application to verify incoming commits
-
b. P2P protocol
P2P core overlay protocol with Pub/Sub, two-tier broker dispatch of events
-
c. External requests
Being able to access the commits and files from outside
-
d. Petnames
Petnames of commits and branches
-
a. ngd - the NextGraph Daemon: configuration
The Daemon (ngd) serves the web app, and also acts as a broker. It can be administrated with the help of the CLI (ngcli). A daemon can be installed on any server thus making NextGraph a self-hosted solution
-
b. ngcli - the command line interpreter: basic commands
P2P core overlay protocol with Pub/Sub, two-tier broker dispatch of events
-
c. Websocket communication and Noise protocol encryption
The App, the CLI and the Daemon communicate with each other using a websocket that is encrypted with the Noise protocol
-
d. RocksDB plugin for encryption
the apps, the CLI and the daemon encrypt all their data at rest. For this purpose, RocksDB was chosen as a key-value store compatible with all the targeted platforms. RocksDB offers an interface for encryption at rest, via a plugin. We implement this plugin with a CTR-AES-256 symmetric encryption based on OpenSSL or IPPCP depending on the platform.
Rocksdb encryption plugin -
e. native app based on Tauri, web app, and javascript SDK/API scaffolding
NextGraph proposes a native application to its users, which runs on several mobile and desktop platforms (Linux, Android, MacOS, iOS, and Windows) and a web app accessible via modern browsers. The native app is based on Tauri framework. Developers can also use the Javascript SDK/API to integrate NextGraph into their own application.
-
f. Wallet CRDT mechanism, GUIs for creation and opening of the Pazzle
Before being able to use the App, each user must create a Wallet for themselves, which is a tiny file containing the private keys of their Identity and Public, Protected and Private stores. Those stores contain the private keys to access all the repositories/documents they have permission for.
-
g. Broker Service Provider workflow for TOS acceptance
When creating their Pazzle, the user must choose one broker that will be associated with their personal identity. Having a broker is mandatory as the 2-tier P2P network relies on the availability of a broker to exchange events.