{ "navigation": [ { "Getting Started": "/docs/", "pages": [ { "Introduction": "/docs/Introduction", "pages": [ { "Offline-First": "/docs/Introduction#offline-first" }, { "Distributed": "/docs/Introduction#distributed" } ] }, { "Installation": "/docs/Installation", "pages": [ { "Browser": "/docs/Installation#browser" }, { "Node": "/docs/Installation#node" } ] }, { "Hello World": "/docs/Hello-World" }, { "Next Steps": "/docs/Next-Steps", "pages": [ { "Application Developers": "/docs/Next-Steps#application-developers" }, { "Software Architects": "/docs/Next-Steps#software-architects" } ] }, { "Crash Course": "/docs/Crash-Course" } ] }, { "Learn": "/docs/Todo-Dapp", "pages": [ { "Tutorials": "/docs/Todo-Dapp", "pages": [ { "Todo Dapp": "/docs/Todo-Dapp" }, { "Learn to Code": "/docs/Learn-Code" }, { "Basic Todo List": "/docs/Basic-Todo-App-Tutorial" } ] }, { "Guides": "/docs/Graph-Guide", "pages": [ { "Intro to Graphs": "/docs/Graph-Guide" }, { "Basic Todo List": "/docs/Basic-Todo-App-Guide", "pages": [ { "The basic html": "/docs/Basic-Todo-App-Guide#the-basic-html" }, { "Add GUN": "/docs/Basic-Todo-App-Guide#add-gun" }, { "Show the todos": "/docs/Basic-Todo-App-Guide#show-the-todos" }, { "Edit todos": "/docs/Basic-Todo-App-Guide#edit-todos" }, { "Add a done state": "/docs/Basic-Todo-App-Guide#add-a-done-state" }, { "Delete todos": "/docs/Basic-Todo-App-Guide#delete-todos" }, { "Now refresh the browser": "/docs/Basic-Todo-App-Guide#now-refresh-the-browser" }, { "The full code": "/docs/Basic-Todo-App-Guide#the-full-code" } ] }, { "React-Native": "/docs/React-Native", "pages": [ { "Dependencies": "/docs/React-Native#dependencies" }, { "Tutorial": "/docs/React-Native#tutorial" }, { "Step 1": "/docs/React-Native#step-1" }, { "Step 2: React Native Dev Environment": "/docs/React-Native#step-2-react-native-dev-environment" }, { "Local Development": "/docs/React-Native#local-development" }, { "Notes": "/docs/React-Native#notes" }, { "Old": "/docs/React-Native#old" } ] }, { "AWS S3": "/docs/Using-Amazon-S3-for-Storage" }, { "Blog Example": "/docs/Design-Examples" }, { "React": "/docs/React-Tutorial", "pages": [ { "Intro to Decentralized Databases with GUN": "/docs/React-Tutorial#intro-to-decentralized-databases-with-gun" }, { "A Working Example": "/docs/React-Tutorial#a-working-example" } ] }, { "Vite": "/docs/Vite"}, { "Svelte": "/docs/Svelte", "pages": [ { "Guide": "/docs/Svelte#guide" }, { "Tutorial": "/docs/Svelte#tutorial" } ] }, { "dWeb: The Decentralized Web": "/docs/dWeb-The-Decentralized-Web" }, { "Privacy: What You Need To Know": "/docs/Privacy-What-You-Need-To-Know" } ] }, { "FAQ": "/docs/FAQ" }, { "How": "/docs/", "pages": [ { "How to Run A GUN Server": "/docs/How-to-Run-A-GUN-Server" }, { "How Writes Work": "/docs/Partials-and-Circular-References" }, { "How to Create Users": "/docs/User" }, { "How to Add Security": "/docs/Auth" }, { "How to Extend GUN": "/docs/Adding-Methods-to-the-Gun-Chain" }, { "How to Delete Data": "/docs/Delete" }, { "How Reactive Programming Works": "/docs/FRP" }, { "How Chaining Works": "/docs/Chain" }, { "How to Store Time Based Data": "/docs/Timegraph" }, { "How to Sync Time": "/docs/How-to-Sync-Time" }, { "How to do Transactions": "/docs/Transactions" }, { "How to Implement other CRDTs": "/docs/Counter" }, { "How to use S3 for Storage": "/docs/Using-Amazon-S3-for-Storage" }, { "How to Help": "/docs/Help" }, { "How to Contribute": "/docs/Contributing" }, { "Wanna help build the game?": "/docs/Games" } ] }, { "Why": "/docs/", "pages": [ { "Why Performance Matters": "/docs/Performance" } ] }, { "Who": "/docs/", "pages": [ { "How to Help": "/docs/Help" }, { "How to Contribute": "/docs/Contributing" }, { "Awesome List": "/docs/Awesome-GUN" } ] }, { "What": "/docs/", "pages": [ { "Roadmap": "/docs/Roadmap" }, { "Why GUN Won't Shut Down": "/docs/Why-GUN-Won%27t-Shut-Down" } ] }, { "Architecture": "/docs/", "pages": [ { "How to Port GUN": "/docs/Porting-GUN", "pages": [ { "Running a Server": "/docs/Porting-GUN#running-a-server" }, { "Graph": "/docs/Porting-GUN#graph" }, { "GUN Wire Spec": "/docs/Porting-GUN#gun-wire-spec" }, { "Conflict Resolution - THIS SECTION IS NOT FINISHED AND WILL PROBABLY BE ENTIRELY REWRITTEN": "/docs/Porting-GUN#conflict-resolution-this-section-is-not-finished-and-will-probably-be-entirely-rewritten" }, { "Work in Progress": "/docs/Porting-GUN#work-in-progress" } ] }, { "CAP": "/docs/CAP-Theorem" }, { "DAM": "/docs/DAM", "pages": [ { "Daisy-chain Ad-hoc Mesh-network": "/docs/DAM#daisy-chain-ad-hoc-mesh-network" }, { "API": "/docs/DAM#api" }, { "Architecture": "/docs/DAM#architecture" } ] }, { "CRDT": "/docs/Conflict-Resolution-with-Guns", "pages": [ { "Requirements": "/docs/Conflict-Resolution-with-Guns#requirements" }, { "Implementation": "/docs/Conflict-Resolution-with-Guns#implementation" }, { "Questions": "/Conflict-Resolution-with-Guns#questions" }, { "Further Reading": "docs/Conflict-Resolution-with-Guns#further-reading" } ] }, { "PTSD": "/docs/PTSD" }, { "PANIC": "/docs/Panic" }, { "PARTY": "/docs/Party" }, { "Iris": "/docs/Iris" }, { "Cartoon Cryptography": "/docs/Cartoon-Cryptography", "pages": [ { "Security": "/docs/Cartoon-Cryptography#security" }, { "Cryptography": "/docs/Cartoon-Cryptography#cryptography" }, { "Work": "/docs/Cartoon-Cryptography#work" }, { "Encryption": "/docs/Cartoon-Cryptography#encryption" }, { "Privacy": "/docs/Cartoon-Cryptography#privacy" }, { "Signatures": "/docs/Cartoon-Cryptography#signatures" }, { "Summary": "/docs/Cartoon-Cryptography#summary" } ] }, { "Graph Data Structure": "/docs/Simple-introduction-to-graph-data-structures", "pages": [ { "All about souls": "/docs/Simple-introduction-to-graph-data-structures#all-about-souls" } ] }, { "Graph Data Structure 2": "/docs/GUN’s-Data-Format-%28JSON%29" }, { "Hypothetical Amnesia Machine": "/docs/Hypothetical-Amnesia-Machine-(HAM)", "pages": [ { "Introduction": "/docs/Hypothetical-Amnesia-Machine-(HAM)#introduction" }, { "Existing mechanisms and challenges": "/docs/Hypothetical-Amnesia-Machine-(HAM)#existing-mechanisms-and-challenges" }, { "GUN's Hypothetical Amnesia Machine (HAM)": "/docs/Hypothetical-Amnesia-Machine-(HAM)#guns-hypothetical-amnesia-machine-ham-" }, { "Footnotes": "/docs/Hypothetical-Amnesia-Machine-(HAM)#footnotes" } ] }, { "Authentication": "/docs/Security%2C-Authentication%2C-Authorization", "pages": [ { "Introduction": "/docs/Security%2C-Authentication%2C-Authorization#introduction" }, { "Some key concepts": "/docs/Security%2C-Authentication%2C-Authorization#some-key-concepts" }, { "Answers !": "/docs/Security%2C-Authentication%2C-Authorization#answers-" } ] }, { "Adapter Performance": "/docs/Adapter-Performance", "pages": [ { "Key Considerations": "/docs/Adapter-Performance#key-considerations" }, { "How Benchmarks Work": "/docs/Adapter-Performance#how-benchmarks-work" }, { "Gun-DB": "/docs/Adapter-Performance#gun-db" }, { "Gun-Mongo": "/docs/Adapter-Performance#gun-mongo-key" }, { "Gun-File": "/docs/Adapter-Performance#gun-file" }, { "Gun-Level": "/docs/Adapter-Performance#gun-level" }, { "Running Benchmarks": "/docs/Adapter-Performance#running-benchmarks" }, { "Future work": "/docs/Adapter-Performance#future-work" } ] }, { "Service Discovery": "/docs/Service-Discovery" }, { "Terminology": "/docs/Glossary" }, { "Sharding": "/docs/Sharding", "pages": [ { "Advantages": "/docs/Sharding#advantages" }, { "Observations": "/docs/Sharding#observations" }, { "Misconception": "/docs/Sharding#misconception" }, { "Conclusion": "/docs/Sharding#conclusion" } ] }, { "JavaScript": "/docs/javascript", "pages": [ { "Type": "/docs/javascript#type" }, { "Event": "/docs/javascript#event" }, { "State": "/docs/javascript#state" }, { "Graphs": "/docs/javascript#graphs" }, { "Deduplication": "/docs/javascript#deduplication" }, { "Implementation": "/docs/javascript#implementation" }, { "Root": "/docs/javascript#root" }, { "Chain": "/docs/javascript#chain" } ] }, { "Shim": "/docs/shim.js", "pages": [ { "Use": "/docs/shim.js#use" }, { "Answer": "/docs/shim.js#nodejs" }, { "Browser": "/docs/shim.js#browser" }, { "Firebase": "/docs/shim.js#firebase" }, { ".on('value', cb)": "/docs/shim.js#-code-on-value-cb-code-" }, { ".onDisconnect()": "/docs/shim.js#-code-ondisconnect-code-" }, { ".connected(cb": "/docs/shim.js#-code-connected-cb-code-" } ] }, { "Null": "/docs/Null", "pages": [ { "Question": "/docs/Null#question" }, { "Answer": "/docs/Null#answer" } ] } ] }, { "AXE": "/docs/AXE", "pages": [ { "Advanced eXchange Equation": "/docs/AXE#advanced-exchange-equation" }, { "Cartoon Whitepaper": "/docs/AXE#cartoon-whitepaper" }, { "Lightning Talk": "/docs/AXE#lightning-talk" }, { "Whitepaper": "/docs/AXE#whitepaper" }, { "Contributing": "/docs/AXE#contributing" }, { "Roadmap": "/docs/AXE#roadmap" }, { "Code": "/docs/AXE#code" }, { "FAQ": "/docs/AXE#faq" }, { "Chats": "/docs/AXE#chats" } ] } ] }, { "API": "/docs/API", "pages": [ { "GUN API": "/docs/API", "pages": [ { "-- Core API --": "/docs/API#-core-api-" , "pages": [ { "Gun(options)": "/docs/API#options" }, { "gun.put(data, callback)": "/docs/API#-a-name-put-a-gun-put-data-callback-" }, { "gun.get(key)": "/docs/API#-a-name-get-a-gun-get-key-" }, { "gun.opt(options)": "/docs/API#-a-name-opt-a-gun-opt-options-" }, { "gun.back(amount)": "/docs/API#-a-name-back-a-gun-back-amount-" } ] }, { "-- Main API --": "/docs/API#-main-api-" , "pages": [ { "gun.on(callback, option)": "/docs/API#-a-name-on-a-gun-on-callback-option-" }, { "gun.once(callback, option)": "/docs/API#-a-name-once-a-gun-once-callback-option-" }, { "gun.set(data, callback)": "/docs/API#-a-name-set-a-gun-set-data-callback-" }, { "gun.map(callback)": "/docs/API#-a-name-map-a-gun-map-callback-" } ] }, { "-- User API --": "/docs/User" , "pages": [ { "gun.user.create": "/docs/User#user-create" }, { "gun.user.auth": "/docs/User#user-auth" }, { "gun.user.leave": "/docs/User#user-leave" }, { "gun.user.delete": "/docs/User#user-delete" }, { "gun.user.recall": "/docs/User#user-recall" }, { "gun.user.alive": "/docs/User#user-alive" }, { "gun.user.trust": "/docs/User#user-trust" }, { "gun.user.grant": "/docs/User#user-grant" }, { "gun.user.secret": "/docs/User#user-secret" } ] }, { "-- Extended API --": "/docs/API#-extended-api-" , "pages": [ { "gun.path(key)": "/docs/API#-a-name-path-a-gun-path-key-" }, { "gun.not(callback)": "/docs/API#-a-name-not-a-gun-not-callback-" }, { "gun.open(callback)": "/docs/API#-a-name-open-a-gun-open-callback-" }, { "gun.load(cb, opt)": "/docs/API#-a-name-load-a-gun-load-cb-opt-" }, { "gun.then(cb)": "/docs/API#-a-name-then-a-gun-then-cb-not-official-yet-" }, { ".promise(cb)": "/docs/API#-promise-cb-not-official-yet-" }, { "gun.bye()": "/docs/API#-a-name-bye-a-gun-bye-" }, { "gun.later(cb, seconds)": "/docs/API#-a-name-later-a-gun-later-cb-seconds-" }, { "gun.unset(node)": "/docs/API#-a-name-unset-a-gun-unset-node-" }, { "Forget (experimental)": "/docs/Forget" } ] }, { "-- Gun utils --": "/docs/API#-a-name-utilities-a-gun-utils-" , "pages": [ { "Gun.node.is(data)": "/docs/API#gun-node-is-data-" }, { "Gun.node.soul(data)": "/docs/API#gun-node-soul-data-" }, { "Gun.node.ify(json)": "/docs/API#gun-node-ify-json-" } ] }, { "Chats": "/docs/AXE#chats" } ] }, { "SEA API": "/docs/SEA" , "pages": [ { "Quickstart": "/docs/SEA#quickstart" }, { "Return": "/docs/SEA#return" }, { "Errors": "/docs/SEA#errors" }, { "Work": "/docs/SEA#work" }, { "Pair": "/docs/SEA#pair" }, { "sign": "/docs/SEA#sign" }, { "verify": "/docs/SEA#verify" }, { "encrypt": "/docs/SEA#encrypt" }, { "decrypt": "/docs/SEA#decrypt" }, { "certify": "/docs/SEA#certify" } ] }, { "RAD API": "/docs/RAD" , "pages": [ { "Install": "/docs/RAD#install" }, { "Lex": "/docs/RAD#lex" }, { "Without": "/docs/RAD#without" }, { "API": "/docs/RAD#api" }, { "Write": "/docs/RAD#write" }, { "Read": "/docs/RAD#read" } ] }, { "JOY API": "/docs/JOY" }, { "Adapters": "/docs/Adapters", "pages": [ { "Storage": "/docs/Storage", "pages": [ { "Included Storage Engines": "/docs/Storage#included-storage-engines" }, { "localStorage": "/docs/Storage#localstorage" }, { "File": "/docs/Storage#file" }, { "Radix": "/docs/Storage#radix" }, { "S3": "/docs/Storage#s3" }, { "IPFS": "/docs/Storage#ipfs" }, { "Third Party Storage Solutions": "/docs/Storage#third-party-storage-solutions" }, { "Level": "/docs/Storage#file-system-alt1-" }, { "File System (Alt1)": "/docs/Storage#sqlite-odbc-sack-" }, { "Flint": "/docs/Storage#flint" }, { "MongoDB": "/docs/Storage#mongodb" }, { "MySQ": "/docs/Storage#mysql" }, { "Cassandra": "/docs/Storage#cassandra" }, { "Elasticsearch": "/docs/Storage#elasticsearch" }, { "LMDB": "/docs/Storage#lmdb" } ] }, { "Radisk": "/docs/Radisk" , "pages": [ { "Radisk Storage Engine": "/docs/Radisk#radisk-storage-engine" } ] }, { "Building Storage Adapters": "/docs/Building-Storage-Adapters" , "pages": [ { "Use RAD Instead": "/docs/Building-Storage-Adapters#use-rad-instead" }, { "Hook Into Gun <= v0.2019.x IO Events": "/docs/Building-Storage-Adapters#hook-into-gun-code-v0-2019-x-code-io-events" }, { "Storing data (put requests)": "/docs/Building-Storage-Adapters#storing-data-code-put-code-requests-" }, { "Request Formats": "/docs/Building-Storage-Adapters#request-formats" }, { "Acknowledge a write": "/docs/Building-Storage-Adapters#acknowledge-a-write" }, { "Retrieving data (get requests)": "/docs/Building-Storage-Adapters#retrieving-data-code-get-code-requests-" }, { "get request format": "/docs/Building-Storage-Adapters#-code-get-code-request-format" }, { "Acknowledging a get / send back data": "/docs/Building-Storage-Adapters#acknowledging-a-code-get-code-send-back-data" }, { "Streaming Data back to Gun": "/docs/Building-Storage-Adapters#streaming-data-back-to-gun" }, { "Gun Helper Methods": "/docs/Building-Storage-Adapters#gun-helper-methods" }, { "Words of Caution": "/docs/Building-Storage-Adapters#words-of-caution" }, { "Alternative to writing your own adapter from scratch": "/docs/Building-Storage-Adapters#alternative-to-writing-your-own-adapter-from-scratch" } ] } ] } ] }, { "About GUN-ECO": "/docs/about-gun-eco", "pages": [ { "Development": "/docs/about-gun-eco#development" }, { "Future": "/docs/about-gun-eco#future" } ] } ] }