Gun-vue – is where the peer-to-peer javascript database Gun meets the reactivity system of Vue. Pluggable components for UX designers. Easily importable composables for UI developers. Relay peer for p2p network enthusiasts. Demos and docs for beginners. Open source for everyone! ✊
@gun-vue is a open collection of interconnected building blocks for making a whole range of decentralized apps for online and offline collaboration. It's a place where we can feel the nature of distributed networking and have fun together!
Gun is a CRDT based distributed graph database, Vue is a reactive JS UI framework. And SEA is web-browser cryptography adapter. Together they evolve into an ecosystem of multiple app levels.
The project is committed to give all the basic tools for everyone to participate in exploring this new graph universe. You can find your own way in it for yourself.
There code is organised into distinct layers in the @gun-vue npmjs.com organisation for you to install and use in your P2P apps.
The main gun-vue.js.org web-site is a demo Gun-Vue Vite SPA. It's also automagically gets built into a set of desktop apps.
Web app hosted at GitHub pages and JS.org domain
The app is reachable via the free js.org subdomain since Jan 2022. Yet it's build with the relative base path and can be served from any domain and path.
Desktop app releases via GitHub Actions and Tauri
Every time a new version of Gun-Vue is published, an automated action creates a new release draft with a full kit of lightweight native desktop apps for Windows, Mac OS and Linux with Tauri by a GitHub Action. Mobile apps are coming.
Open source code at GitHub pnpm monorepo
The code is cut into vertical slices as small interconnectable apps in the common source folder.
This means that each folder in the src
directory is a quite convenient section of the whole codebase. Each holds shared basic structure, but has distinct functionality.
All the code get build locally to the _dist
folder and it's then deployed to the free GitHub Pages static site hosting.
Ready to use Vue 3 components as building blocks to implement Gun powered interactivity in seconds.
Playground at Stackblitz.com
Native web-components may be implemented in future.
Composable functions for use with Vue 3 Composition API
Documentation with Typedoc and Vitepress
A simple no-store Gun server to throw at any free tier Node.js environment.
Demo relay by DeFUCC
Development video blog. Watch at DeFUCC youtube channel
You can find shorter feature announcements there along with longer live coding sessions.
- Clone the repo
- Use pnpm to install all the dependencies in the workspaces
npm i -G pnpm
pnpm i
- Use
dev
anddocs
scripts in the rootpackage.json
to run corresponding dev servers. - Use
npm run build
to build the whole project to the_dist
folder.