Skip to content

Awesome GUN

Joe Thielen edited this page Jul 10, 2022 · 111 revisions

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

✨Awesome Gun✨

Awesome

GUN is a realtime, decentralized, offline-first, graph protocol to sync the web.


Apps

Plugins / Helpers

  • gun-avatar
    • SEA public key visualizer - great for gun user avatars and room backgrounds
  • GunStreamer
    • Streaming component for Gun db.
  • gun-inspector
    • Gun Node visualizer and editor
  • visualGraph
    • Gun Utility to Traverse Graph and use d3.js to visualize
  • gun-graphin
    • Gun Graph visualization and Navigation using Graphin library
  • Gun-scape
    • GunDB Cytoscape Graph Visualizer + Live Editor
  • CRDT Continuous Sequence
    • Makes CRDT sets orderable
  • gunjs trust share key
    • gun.js Trust and Share Key functions simple.
  • polyGun
    • GunDB Polyglot Server [ https/wss + letsencrypt ]
  • gun-host
  • gun-kibana-graph
    • Visualization Plugin to display Gun graphs in Kibana ~ By lmangani
  • gun-synclist Get an Array with full nodes on init, after that only the changed - full - node, its soul and its index. ~ By Stefdv
  • gun-tag Tag, untag, filter and find intersects on nodes ~ By Stefdv
  • gun-schema
    • Schema validation module for node and the browser ~ By RangerMauve
  • labelmaker
    • Organize and index data into groups with tags ~ By PsychoLlama
  • onward
    • Listen for changes on an entire document at once ~ By amark
  • reticle
    • Namespace your data, preventing naming conflicts and adding clear separation between apps ~ By PsychoLlama
  • synchronous
    • One way deep (document oriented) object data binding, similar to onward ~ By amark
  • gun-ws on Github
    • Extended websocket provider for Gun. Initially meant to provide a way to connect multiple servers to a single
    • Gun instance ~ By d3x0r
      • Uses 'ws' npm package for websockets. Should either migrate to sack.vfs
  • load
    • Load full document structures to Gun ~ By IMGNRY
  • gun-most
    • Extends gunDB with the ability to chain into most.js observables ~ By ctrlplusb
  • graphql-gun
    • Augmented graphql query interface for Gun
  • bullet
    • Alternative syntax to Gun, promise support, utility modules, and easy Gun adapter events.
  • gun-appendOnly
    • Support append only node keys on a first-come-first-served basis and allow modification to key content based on SEA users
  • gun-hue
    • Explore and change your hue lighting with gun! ~ By PsychoLlama
  • gun-ui-lcd
    • Component to attach an html lcd to Gun ~ By Stefdv
  • gun-util
    • Convenience and utility methods for Gun, including:
      1. DateTree: A time graph for efficient storage, iteration and lookup of time based data.
      2. Encryption: Easy bulk encryption.
      3. GunUser: Promises and safety checks for authentication.
  • griffin
    • A decentralized document-oriented database. Built with Gun and implements an API and query language similar to MongoDB.
  • Lone Wolf Protocol
    • A decentralized messaging protocol built with Gun.
  • gun-fetch
    • Use Gun with fetch and a uri scheme. ~ By resession
  • Gunsafe (alpha API & CLI), NPM: Gunsafe
    • A decentralized secure vault API and CLI built on Gun chain, secured by SEA, with gunsafe vault synchronization across devices ~ By Daniel Raeder

Framework Integrations

  • @gun-vue
    • A collection of Vue 3 composable functions, pluggable components and tech demos of using Gun with Vue reactivity system.
  • Gun Phaser Multiplayer Boilerplate
    • A boilerplate for starting a multiplayer web game project with Phaser + Gun by mimiza
  • Google Cloud Function
    • An example of using Google Cloud Function + Gun by mimiza
  • svelte gundb example
    • This is a project template for Svelte apps with the gun database.
  • Remix.GUN - React v18
    • Project template for deploying Remix http server/GUN relay server. Shipped with loader/ action context api.
  • sapper/svelte gundb example
    • This is a project template for Sapper/Svelte apps with the gun database. The server is served alongside the page and accessing at location.origin + "/gun". Sapper is a framework designed with svelte to facilitate offline first functionality and all svelte goodness.
  • Weir
    • Auto-generate react component data bindings to gundb nodes
  • vue-gun
    • Vue plugin to add Gun integration ~ By sjones6
  • gun-react-native
    • A distribution of Gun designed to work with React Native out of the box ~ By sjones6
  • as
    • Mark's personal UI Framework with deep assumptions and opinionated bindings to GUN ~ By amark
  • gun-realm
    • A React Native RealmJS adapter for GunJS ~ By sjones6
  • gun-ui-gauge
    • (Still under development to fit the latest Gun version ( 0.9.x ) )
    • Add a GunDB controlled gauge to your webpage ~ By Stefdv
  • Node-RED ~ By TotallyInformation
  • purescript-bf-gun
    • gundb bindings for purescript ~ by Yornaath

Alternative Implementations

Storage Adapters

Examples

Examples, demos and tools demonstrating Gun features and capabilities

  • GitHub Examples Original, up to date Gun examples

  • gun-scape GunDB Cytoscape Graph Visualizer with Live Editor

  • Next.js Example of how to get started with Next.js and GUN!

  • GunStore.io Storing data in Gun DB by sending simple HTTP requests & custom URLs

  • postMessage postMessage API integration for iframes. inner

  • Gun Voice Recording Simple audio recording using MediaRecorder with Gun.

  • Gun custom index An example of how you can index a list of items based on object property (in this case, index a list of people by gender and retrieve only the people of a certain gender in an efficient way)

  • User catalogue An example of how you can list all the users in your app based on registering users against a content addressed catalogue

React

  • gundb-react-todolist Simple todo-list using gun and react-gun

  • react minimalist example with hooks Minimalist example on how use gun with basic React hooks such as useState and useEffect and functional components:

    • subscribe to stream after mounting with useEffect hook
    • unsubscribe from stream when unmounting component
    • create an item in a node
    • list all items from that node
    • delete item from node
  • react text search by indexed text Example on how to save a list of items in Gun, index them by name (or whatever prop you need) and perform a very efficient search.

  • gunDB + React + Express user auth example with:

    • sign up/sign in/change password
    • update user's "public" profile
    • multi-tab session syncing
    • access control using JWT access tokens and SEA certificates

Snippets

Snippets page with various examples of Gun patterns/features.

Deployment

Defunct

Items that have succumbed to link rot.

  • Items with archived links
    • Add any links to Internet Archive / Wayback machine or other sources here!
  • These items unfortunately have no known archived links
    • creeper.im
      • Send public messages to nearby people.

Archive

The old pages are: (these will be archived after migrated to this page)