Flutter Gems is a curated list of 6700+ useful Dart & Flutter packages that are categorized based on functionality.
Top Flutter WebSocket and RPC packages
Last updated: January 26, 2025
WebSocket enables real-time and two-way communication between a client and a server, and is popularly used by applications handling real-time data such as chat applications, online gaming and live data streaming.
Whereas, Remote Procedure Call or RPC is a protocol that allows a program to execute code on another address space, typically on a remote server, as if it were a local function call. It abstracts the complexities of remote communication by enabling developers to invoke functions on a different system without dealing with low-level networking details. RPC is used to build distributed systems, where different components or services communicate seamlessly. There are various implementations of RPC, such as gRPC, which use protocols like HTTP/2 for communication. RPC is widely utilized in micro-services architectures and client-server applications, enhancing modularity and scalability.
WebSocket and RPC can be used for building efficient and interactive applications across different domains. Below you will find the top packages that can help you add WebSocket and RPC support in your Flutter apps easily.
web_socket_channel
👍 1.43K ⬇️ 5.3M
Dart 3 compatibleMaintenance Status: Good
StreamChannel wrappers for WebSockets. Provides a cross-platform WebSocketChannel API, a cross-platform implementation of that API that communicates over an underlying StreamChannel.
shelf_web_socket
👍 124 ⬇️ 5.3M
Dart 3 compatibleMaintenance Status: Good
A shelf handler that wires up a listener for every connection.
vm_service
👍 52 ⬇️ 4.7M
Dart 3 compatibleMaintenance Status: Good
A library to communicate with a service implementing the Dart VM service protocol.
dds_service_extensions
👍 5 ⬇️ 2.3M
Dart 3 compatibleMaintenance Status: Good
Extension methods for `package:vm_service`, used to make requests a Dart Development Service (DDS) instance.
json_rpc_2
👍 98 ⬇️ 2.2M
Dart 3 compatibleMaintenance Status: Good
Utilities to write a client or server using the JSON-RPC 2.0 spec.
web_socket
👍 27 ⬇️ 2.2M
Dart 3 compatibleMaintenance Status: Good
Any easy-to-use library for communicating with WebSockets that has multiple implementations.
vm_service_interface
👍 3 ⬇️ 2.1M
Dart 3 compatibleMaintenance Status: Good
A library providing an interface to implement the Dart VM service protocol.
socket_io_client
👍 1.44K ⬇️ 52.6K
Dart 3 compatibleMaintenance Status: Good
Dartlang port of socket.io-client for web, flutter, dartvm to use
grpc
👍 413 ⬇️ 187K
Dart 3 compatibleMaintenance Status: Good
Dart implementation of gRPC, a high performance, open-source universal RPC framework.
mqtt_client
👍 471 ⬇️ 39.4K
Dart 3 compatibleMaintenance Status: Good
A server and browser based MQTT client for Dart supporting normal, secure sockets and websockets.
w_transport
👍 3 ⬇️ 251.1K
Dart 3 compatibleMaintenance Status: Good
Transport library for sending HTTP requests and opening WebSockets. Platform-independent with builtin support for browser and Dart VM (even supports SockJS). Includes mock utilities for testing.
sockjs_client_wrapper
👍 0 ⬇️ 194.7K
Dart 3 compatibleMaintenance Status: Average
A Dart wrapper for the `sockjs-client` JS library.
web_socket_client
👍 166 ⬇️ 12.8K
Dart 3 compatibleMaintenance Status: Good
A simple WebSocket client for Dart which includes automatic reconnection logic.
stomp_dart_client
👍 122 ⬇️ 11.3K
Dart 3 compatibleMaintenance Status: Good
Dart STOMP client for easy messaging interoperability. Build with flutter in mind, but should work for every dart application.
socket_io
👍 131 ⬇️ 1.1K
Dart 3 compatibleMaintenance Status: Poor
Port of JS/Node library Socket.io. It enables real-time, bidirectional and event-based communication cross-platform.
socket_io_common
👍 6 ⬇️ 93.5K
Dart 3 compatibleMaintenance Status: Good
Socket.io common parser library.
ws
👍 81 ⬇️ 1.7K
Dart 3 compatibleMaintenance Status: Good
WS: A compact, highly efficient WebSocket library. Easily establish, manage, and reconnect WebSocket connections in real-time apps.
mqtt5_client
👍 51 ⬇️ 14.3K
Dart 3 compatibleMaintenance Status: Good
A server and browser based MQTT5 client for Dart supporting normal, secure sockets and websockets.
phoenix_socket
👍 56 ⬇️ 3.3K
Dart 3 compatibleMaintenance Status: Good
PhoenixSocket provides a feature-complete implementation of Phoenix Sockets, using a single API based on StreamChannels compatible with any deployment of Flutter.
dart_frog_web_socket
👍 47 ⬇️ 897
Dart 3 compatibleMaintenance Status: Average
WebSocket support for Dart Frog
tcp_socket_connection
👍 42 ⬇️ 232
Dart 3 compatibleMaintenance Status: Poor
A flutter package to connect, listen to and send messages over tcp sockets.
websocket_universal
👍 35 ⬇️ 1.6K
Dart 3 compatibleMaintenance Status: Good
Convenient websocket handler for all platforms (both IO and web/HTML). Websocket messages routing, statuses and other features have easy-to-use interface.
dart_nats
👍 34 ⬇️ 616
Dart 3 compatibleMaintenance Status: Good
A Dart client for the NATS messaging system. Design to use with Dart and flutter.
action_cable
👍 22 ⬇️ 2.5K
Dart 3 compatibleMaintenance Status: Good
ActionCable client port in dart, available in web, dartVM and flutter.
phoenix_wings
👍 12 ⬇️ 4.1K
Dart 3 compatibleMaintenance Status: Poor
Phoenix Channel client for Dart
flutter_gundb
👍 14 ⬇️ 60
Dart 3 compatibleMaintenance Status: Average
A gunDB port P2P encrypted Communication between multiple users.
socket_io_adapter
👍 6 ⬇️ 33
Dart 3 compatibleMaintenance Status: Good
This package is a wrapper for socket_io_client, simplifying connection to a socket.io server, event listening, and event emission to the server.
adhara_socket_io
👍 86 ⬇️ 5
Maintenance Status: Poor
Websocket by socket.io for flutter by adhara, supports both iOS and Android
laravel_echo
👍 68 ⬇️ 893
Maintenance Status: Poor
Port of official Laravel Echo package for your Flutter apps.
websocket_manager
👍 44 ⬇️ 128
Maintenance Status: Poor
A Flutter plugin for Android and iOS supports websocket connection