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 💕 Built with yjs 💕
Intro • Usage • Related • Credits • License
Intro
Pluv.IO allows you to build real-time collaborative features with a fully end-to-end type-safe api.
👉 See full documentation on pluv.io. 👈
Why?
So you can do this:
const broadcast = usePluvBroadcast();
usePluvEvent("RECEIVE_MESSAGE", ({ data }) => {
setMessages([...messages, data.message]);
});
broadcast("SEND_MESSAGE", { message: "Hello world!" });
And more. With E2E type-safety, great intellisense and the yjs ecosystem.
Features
- ✅ Automatic type safety
- ✅ Basic events
- ✅ Rooms
- ✅ Authentication
- ✅ Awareness + Presence
- ✅ CRDTs (with Yjs)
- ✅ Shared Types
- ✅ Map
- ✅ Array
- ✅ Text
- ✅ XmlFragment
- ✅ XmlElement
- ✅ XmlText
- ✅ Shared Types
- ⬜ Studio (admin & developer panel)
Runtimes
Frontends
Usage
Before diving into documentation, check out usage instructions for your selected platform:
Note:
@pluv/io
,@pluv/client
,@pluv/crdt-yjs
and@pluv/react
all require yjs as a peer dependency.
Documentation
Documentation is available at pluv.io.
Related
- @pluv/client - Framework agnostic client
- @pluv/crdt-yjs - Yjs for Pluv.IO
- @pluv/persistance-redis - Persistance for storage on distributed systems (Node.js only)
- @pluv/platform-cloudflare - Adapter to run @pluv/io on Cloudflare Workers
- @pluv/platform-node - Adapter to run @pluv/io on Node.js
- @pluv/pubsub-redis - PubSub for rooms across distributed systems
- @pluv/react - Integrate @pluv/client with React.js
Credits
This software uses the following open source tooling and libraries: