0.25.1 • Published 5 months ago

@gun-vue/composables v0.25.1

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

Gun-Vue: Composables

GitHub (@gun-vue/composables)npmDocsAPI

Reusable logic built with the Vue 3 Composition API use functions. Manages Gun database interactions, SEA encryption, and reactive state. Check out Gun-Vue: Features (/src) for an overview.

This code is part of Gun-Vue: The Peer-to-Peer Web App Toolkit.

=======

Composables

Identity & Access

  • User - the gun.user() system management
  • Account - user profile interface
  • Password - some elaborations on reimagining password system in a p2p graph environment

Data, Storage, & Networking

  • Crypto - the main cryptographic primitives like e2e encrypted messaging and more
  • Date Tree - the very performant concept of Date Tree graphs from gun-util made reactive and easy to use
  • Relay - Gun relay peer connection monitoring
  • File - some bindings to manage file uploads and downloads
  • Hash - everything you need to hash data and work with the hashes in a reliable way (i.e. URL-safe conversion)

Content & Collaboration

  • Chat - Public group chat
  • Dictionary - we find ourselves in great power if we have verified concepts to collaborate with
  • Private Messages - E2EE Messaging
  • Posts - hashed immutable data in the root of the db as a fun experiment, but with deep observations about freedom of speech and ways to explore the vastness of the public graph space available with Gun
  • Room - private signed collaborative spaces with a certificate system for access management. (TBD)
  • Rooms - cryptographic data collections
  • Space - An endless 2D space for the users to set their positions and draw shared pictures. Can be used to meet with people and verify their identity.

UI & Visual

  • Mouse - some basic bindings to reliably locate mouse pointer in an SVG - may be useful for many online games

... and more!

How-to Use

  1. Install the library:
npm i @gun-vue/composables
  1. Import any of the functions you need:
import { useAccount } from "@gun-vue/composables";
  1. Instantiate the function inside your Vue SFC
const { account, auth, leave } = useAccount();
  1. Use the reactive state in your template to drive the component:
<div v-for="(data,field) in account.profile" :key="field">
	{{ field }} - {{ data }}
</div>

SSR/SSG (Nuxt, VitePress, etc.)

Gun-Vue is client-side only and may cause errors during SSR/SSG builds. To avoid issues, consider one of these approaches:

Note: We plan to refactor the code to be more usable and tree-shakeable in SSG environments. Help needed!

Approach A: Make your component async

<script setup async>
	const { useAccount } = await import("@gun-vue/composables");

	const { account } = useAccount();
</script>

<template>
	<div>{{ account.profile?.name }}</div>
</template>

Approach B: Load only on the client side

<ClientOnly>
	<Suspense>
		<YourComponent />
	</Suspense>
</ClientOnly>

This prevents Gun-Vue from running during build time.

0.25.1

5 months ago

0.21.5

9 months ago

0.25.0

6 months ago

0.21.4

10 months ago

0.21.3

10 months ago

0.21.2

12 months ago

0.22.6

8 months ago

0.22.5

8 months ago

0.22.4

8 months ago

0.22.3

8 months ago

0.22.2

8 months ago

0.22.0

9 months ago

0.23.0

8 months ago

0.24.2

6 months ago

0.24.1

7 months ago

0.24.0

8 months ago

0.20.0

1 year ago

0.21.0

1 year ago

0.18.4

1 year ago

0.18.3

2 years ago

0.18.2

2 years ago

0.17.3

2 years ago

0.17.0

2 years ago

0.17.1

2 years ago

0.18.1

2 years ago

0.18.0

2 years ago

0.14.3

3 years ago

0.14.4

3 years ago

0.15.0

3 years ago

0.15.1

3 years ago

0.15.2

3 years ago

0.16.10

2 years ago

0.16.3

3 years ago

0.16.4

3 years ago

0.16.5

2 years ago

0.16.6

2 years ago

0.16.7

2 years ago

0.16.8

2 years ago

0.16.9

2 years ago

0.16.0

3 years ago

0.16.1

3 years ago

0.16.2

3 years ago

0.13.0

3 years ago

0.13.1

3 years ago

0.13.2

3 years ago

0.12.10

3 years ago

0.14.0

3 years ago

0.14.1

3 years ago

0.14.2

3 years ago

0.12.7

3 years ago

0.12.8

3 years ago

0.12.9

3 years ago

0.12.6

3 years ago

0.11.8

3 years ago

0.11.6

3 years ago

0.11.7

3 years ago

0.12.0

3 years ago

0.12.1

3 years ago

0.12.3

3 years ago

0.12.4

3 years ago

0.12.5

3 years ago

0.11.0

3 years ago

0.11.1

3 years ago

0.11.2

3 years ago

0.11.4

3 years ago

0.11.5

3 years ago

0.9.4

3 years ago

0.10.1

3 years ago

0.10.2

3 years ago

0.10.3

3 years ago

0.10.0

3 years ago

0.9.3

3 years ago

0.9.0

4 years ago

0.9.1

4 years ago

0.7.6

4 years ago

0.7.8

4 years ago

0.7.7

4 years ago

0.8.1

4 years ago

0.8.0

4 years ago

0.8.2

4 years ago

0.5.10

4 years ago

0.6.6

4 years ago

0.2.11

4 years ago

0.2.10

4 years ago

0.3.0

4 years ago

0.7.2

4 years ago

0.5.4

4 years ago

0.7.1

4 years ago

0.3.5

4 years ago

0.7.4

4 years ago

0.5.6

4 years ago

0.3.8

4 years ago

0.7.3

4 years ago

0.5.5

4 years ago

0.3.7

4 years ago

0.5.0

4 years ago

0.3.1

4 years ago

0.7.0

4 years ago

0.3.4

4 years ago

0.5.1

4 years ago

0.5.8

4 years ago

0.7.5

4 years ago

0.5.7

4 years ago

0.3.9

4 years ago

0.5.9

4 years ago

0.3.10

4 years ago

0.6.3

4 years ago

0.2.7

4 years ago

0.6.2

4 years ago

0.2.6

4 years ago

0.6.5

4 years ago

0.2.9

4 years ago

0.6.4

4 years ago

0.2.8

4 years ago

0.2.3

4 years ago

0.4.0

4 years ago

0.2.5

4 years ago

0.6.0

4 years ago

0.2.4

4 years ago

0.2.2

4 years ago

0.2.1

4 years ago

0.2.0

4 years ago

0.1.15

4 years ago

0.1.14

4 years ago

0.1.13

4 years ago

0.1.10

4 years ago

0.1.9

4 years ago

0.1.8

4 years ago

0.1.7

4 years ago

0.1.6

4 years ago

0.1.5

4 years ago

0.1.4

4 years ago

0.1.3

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago