Awesome GUN - amark/gun GitHub Wiki

✨Awesome Gun✨

Awesome

GUN is a realtime, decentralized, offline-first, graph protocol to sync the web. Guide Last Updated: 4/5/2024; Added Gustav's Guide, Bullet-Catcher, Gun-Vue again, Oshu-Gun, Buns And Guns, new Gun Azure Adapter


GUN Guides

Written Guides

Alternate Javascript Engine

Permissions Systems

Framework Implementation Libraries

Multi-Videoconferencing

Alternate Networking Socket Protocols

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)