Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pluv-io/pluv
Multi-platform, type-safe realtime packages
https://github.com/pluv-io/pluv
cloudflare-workers collaborative-editing crdt loro-crdt nodejs react real-time typescript websocket yjs
Last synced: 8 days ago
JSON representation
Multi-platform, type-safe realtime packages
- Host: GitHub
- URL: https://github.com/pluv-io/pluv
- Owner: pluv-io
- License: mit
- Created: 2023-01-07T21:22:51.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-04-14T00:40:44.000Z (10 months ago)
- Last Synced: 2024-04-14T03:08:53.733Z (10 months ago)
- Topics: cloudflare-workers, collaborative-editing, crdt, loro-crdt, nodejs, react, real-time, typescript, websocket, yjs
- Language: TypeScript
- Homepage: https://pluv.io
- Size: 8.38 MB
- Stars: 50
- Watchers: 1
- Forks: 2
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
> **Disclaimer:**
> This package is currently in preview and may have breaking changes between versions. Please wait for a `v1.0.0` stable release before using this in production.
Pluv.IO (preview)
Multi-platform, E2E type-safe realtime packages
💕 Inspired by trpc 💕 yjs 💕 and Cloudflare 💕
Intro •
Usage •
Related •
Credits •
License## Intro
pluv.io allows you to more easily build real-time collaborative experiences with a fully end-to-end type-safe api and the ecosystem of existing CRDT implementations such as **[yjs](https://docs.yjs.dev/)**.
**👉 See full documentation on [pluv.io](https://pluv.io/docs/introduction). 👈**
### Features
- ✅ Automatic type safety
- ✅ Basic events
- ✅ Rooms
- ✅ Authentication
- ✅ Awareness + Presence
- ✅ [CRDTs](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type)
- ✅ [Yjs](https://docs.yjs.dev/)
- ✅ **Shared Types**
- ✅ [Map](https://docs.yjs.dev/api/shared-types/y.map)
- ✅ [Array](https://docs.yjs.dev/api/shared-types/y.array)
- ✅ [Text](https://docs.yjs.dev/api/shared-types/y.text)
- ✅ [XmlFragment](https://docs.yjs.dev/api/shared-types/y.xmlfragment)
- ✅ [XmlElement](https://docs.yjs.dev/api/shared-types/y.xmlelement)
- ✅ [XmlText](https://docs.yjs.dev/api/shared-types/y.xmltext)
- ✅ [Loro](https://loro.dev/)
- ✅ **Containers**
- ✅ List
- ✅ Map
- ✅ Text
- ⬜ Tree
- ⬜ Studio (admin & developer panel)### Runtimes
- ✅ [Cloudflare Workers](https://workers.cloudflare.com/)
- ✅ [Node.js](https://nodejs.org/)
- ✅ **PubSubs**
- ✅ [Redis](https://redis.io/)
- ⬜ [RabbitMQ](https://www.rabbitmq.com/)
- ⬜ [Kafka](https://kafka.apache.org/)
- ✅ **CRDT State Persistence**
- ✅ [Redis](https://redis.io/)
- ⬜ [Prisma](https://www.prisma.io/)### Frontends
- ✅ [React.js](https://react.dev/)
- ⬜ [Solid.js](https://www.solidjs.com/)
- ⬜ [Vue.js](https://vuejs.org/)
- ⬜ [Svelte](https://svelte.dev/)## Usage
Before diving into documentation, check out usage instructions for your selected platform:
### Documentation
Documentation is available at [pluv.io](https://pluv.io/docs/introduction).
## Related
- [@pluv/client](https://www.npmjs.com/package/@pluv/client) - Framework agnostic client
- [@pluv/crdt-loro](https://www.npmjs.com/package/@pluv/crdt-loro) - Loro CRDT for Pluv.IO
- [@pluv/crdt-yjs](https://www.npmjs.com/package/@pluv/crdt-yjs) - Yjs CRDT for Pluv.IO
- [@pluv/persistence-redis](https://www.npmjs.com/package/@pluv/persistence-redis) - Persistence for storage on distributed systems (Node.js only)
- [@pluv/platform-cloudflare](https://www.npmjs.com/package/@pluv/platform-cloudflare) - Adapter to run @pluv/io on Cloudflare Workers
- [@pluv/platform-node](https://www.npmjs.com/package/@pluv/platform-node) - Adapter to run @pluv/io on Node.js
- [@pluv/pubsub-redis](https://www.npmjs.com/package/@pluv/pubsub-redis) - PubSub for rooms across distributed systems
- [@pluv/react](https://www.npmjs.com/package/@pluv/react) - Integrate @pluv/client with React.js## Credits
This software uses the following open source tooling and libraries:
- [Loro](https://loro.dev/)
- [Yjs](https://yjs.dev/)
- [Node.js](https://nodejs.org/)
- [Cloudflare Workers](https://workers.cloudflare.com/)
- [ioredis](https://github.com/luin/ioredis)
- [React.js](https://reactjs.org/)## License
[MIT](https://github.com/pluv-io/pluv/blob/master/LICENSE)