/spinify

Dart (Flutter) client SDK for bidirectional communication with Centrifugo and Centrifuge-based server over WebSocket

Primary LanguageDartMIT LicenseMIT

Spinify

Pub Actions Status Coverage License: MIT Linter GitHub stars

Websocket client for Centrifugo server and Centrifuge library.

Installation

Add the following dependency to your pubspec.yaml file:

dependencies:
  spinify: <version>

Features and Roadmap

  • ✅ Connect to a server
  • ✅ Setting client configuration
  • ✅ Automatic reconnect with backoff algorithm
  • ✅ Client state changes
  • ✅ Protobuf transport
  • ✅ Command-reply
  • ✅ Command timeouts
  • ✅ Async pushes
  • ✅ Ping-pong
  • ✅ Connection token refresh
  • ✅ Server-side subscriptions
  • ✅ Presence information
  • ✅ Presence stats
  • ✅ History information
  • ✅ Send custom RPC commands
  • ✅ Handle disconnect advice from the server
  • ✅ Channel subscription
  • ✅ Setting subscription options
  • ✅ Automatic resubscribe with backoff algorithm
  • ✅ Subscription state changes
  • ✅ Subscription command-reply
  • ✅ Subscription token refresh
  • ✅ Handle unsubscribe advice from the server
  • ✅ Manage subscription registry
  • ✅ Publish data into a channel
  • ✅ Set observer for hooking events & errors
  • ✅ Metrics and stats
  • ✅ Package errors
  • ✅ Meta information about the library
  • ✅ Web transport via extension type
  • ❌ WASM compatibility
  • ❌ Run in separate isolate
  • ❌ JSON codec support
  • ❌ Flutter package
  • ❌ DevTools extension
  • ❌ Middleware support
  • ❌ 95% test coverage
  • ❌ Benchmarks
  • ❌ Performance comparison with other libraries
  • ❌ Batching API
  • ❌ Bidirectional WebSocket emulation
  • ❌ Optimistic subscriptions
  • ❌ Delta compression

Example

More resources

Coverage

Changelog

Refer to the Changelog to get all release notes.

Maintainers

Funding

If you want to support the development of our library, there are several ways you can do it:

We appreciate any form of support, whether it's a financial donation or just a star on GitHub. It helps us to continue developing and improving our library. Thank you for your support!

License

The MIT License