Skip to content
Mark Nadal edited this page Sep 16, 2018 · 26 revisions

Learn answers to all your questions in THE INTERACTIVE TUTORIAL! Or read along:

GUN is a small, easy, and fast data sync and storage system that runs everywhere JavaScript does. The aim of GUN is to let you focus on the data that needs to stored, loaded, and shared in your app without worrying about servers, network calls, databases, or tracking offline changes or concurrency conflicts. This lets you build cool apps fast, like:

Offline-First

When a browser peer asks for data, it'll merge the reply with its own data using a CRDT, then cache the result. This means that:

  • The next time the browser asks for that data, the reply is instant, even when offline.
  • Data is replicated on each browser that asked for it.
  • If your server fails, you can still recover your data from the browsers.

This makes the loss of important information nearly impossible, as all copies of the data would need to be destroyed before it is lost.

Distributed

GUN is fully decentralized (peer-to-peer or multi-master), meaning that changes are not controlled by a centralized server. A server can be just another peer in the network, one that may have more reliable resources than a browser. You save data on one machine, and it will sync it to other peers without needing a complex consensus protocol. It just works.

Next Up?

This wiki is where all the GUN website documentation comes from.

You can read it here or on the website, but the website has some special features like rendering some markdown extensions to create interactive coding tutorials.

Please feel free to improve the docs itself, we need contributions!

Clone this wiki locally