get_rx/get_rx library

A library that provides reactive programming utilities for Flutter applications.

The get_rx library includes classes and utilities for managing reactive streams, defining reactive types, and working with reactive workers.

Classes

FastList<T>
A linked list implementation optimized for fast notifications.
MiniStream<T>
A mini stream implementation.
MiniSubscription<T>
Represents a mini subscription for a stream.
Node<T>
Represents a node in a linked list.
Rx<T>
Foundation class used for custom Types outside the common native Dart types. For example, any custom "Model" class, like User().obs will use Rx as wrapper.
RxBool
An Rx object for managing boolean values.
RxDouble
A reactive extension of double type, enabling reactive operations on double values.
RxInt
A reactive extension of int type, enabling reactive operations on integer values.
RxInterface<T>
This class is the foundation for all reactive (Rx) classes that makes Get so powerful. This interface is the contract that _RxImpl
RxList<E>
A reactive list that extends functionality similar to List<T> and provides automatic notifications on changes.
RxMap<K, V>
Rxn<T>
Extension providing additional functionality for nullable class values wrapped in an Rx object.
RxnBool
An Rx object for managing nullable boolean values.
RxnDouble
A reactive extension of double? type, enabling reactive operations on nullable double values.
RxnInt
A reactive extension of int? type, enabling reactive operations on nullable integer values.
RxnNum
A reactive extension of num? type, enabling reactive operations on nullable numeric values.
RxnString
Rx class for String Type.
RxNum
A reactive extension of num type, enabling reactive operations on numeric values.
RxSet<E>
RxString
Rx class for String Type.
Worker
A class representing a worker for executing asynchronous tasks with disposal functionality.
Workers
A class for managing a collection of workers and disposing them when necessary.

Mixins

RxObjectMixin<T>
global object that registers against GetX and Obx, and allows the reactivity of those Widgets and Rx values.

Extensions

BoolExtension on bool
Extension on bool providing methods to create reactive booleans.
DoubleExtension on double
Extension on double providing methods to create reactive doubles.
IntExtension on int
Extension on int providing methods to create reactive integers.
ListExtension on List<E>
MapExtension on Map<K, V>
RxBoolExt on Rx<bool>
Extension on Rx<bool> providing methods for boolean operations.
RxDoubleExt on Rx<double>
Extension providing additional functionality for double values wrapped in an Rx object.
RxIntExt on Rx<int>
Extension providing additional functionality for int values wrapped in an Rx object.
RxnBoolExt on Rx<bool?>
Extension on Rx<bool?> providing methods for nullable boolean operations.
RxnDoubleExt on Rx<double?>
Extension providing additional functionality for nullable double values wrapped in an Rx object.
RxnIntExt on Rx<int?>
Extension providing additional functionality for nullable int values wrapped in an Rx object.
RxnNumExt on Rx<T?>
Extension providing additional functionality for nullable numeric values wrapped in an Rx object.
RxnStringExt on Rx<String?>
RxNumExt on Rx<T>
Extension providing additional functionality for numeric values wrapped in an Rx object.
RxStringExt on Rx<String>
Extension methods for Rx<String> to provide additional functionality.
RxT on T
Extension on T providing methods to create reactive instances of type T.
RxTnew on Object
This method will replace the old .obs method. It's a breaking change, but it is essential to avoid conflicts with the new dart 3 features. T will be inferred by contextual type inference rather than the extension type.
SetExtension on Set<E>
StringExtension on String
Extension on String providing methods to create reactive strings.

Functions

debounce<T>(GetListenable<T> listener, WorkerCallback<T> callback, {Duration? time, Function? onError, void onDone()?, bool? cancelOnError}) Worker
debounce is similar to interval, but sends the last value. Useful for Anti DDos, every time the user stops typing for 1 second, for instance. When listener emits the last "value", when time hits, it calls callback with the last "value" emitted.
ever<T>(GetListenable<T> listener, WorkerCallback<T> callback, {dynamic condition = true, Function? onError, void onDone()?, bool? cancelOnError}) Worker
Called every time listener changes. As long as the condition returns true.
everAll(List<RxInterface> listeners, WorkerCallback callback, {dynamic condition = true, Function? onError, void onDone()?, bool? cancelOnError}) Worker
Similar to ever, but takes a list of listeners, the condition for the callback is common to all listeners, and the callback is executed to each one of them. The Worker is common to all, so worker.dispose() will cancel all streams.
interval<T>(GetListenable<T> listener, WorkerCallback<T> callback, {Duration time = const Duration(seconds: 1), dynamic condition = true, Function? onError, void onDone()?, bool? cancelOnError}) Worker
Ignore all changes in listener during time (1 sec by default) or until condition is met (can be a bool expression or a bool Function()), It brings the 1st "value" since the period of time, so if you click a counter button 3 times in 1 sec, it will show you "1" (after 1 sec of the first press) click counter 3 times in 1 sec, it will show you "4" (after 1 sec) click counter 2 times in 1 sec, it will show you "7" (after 1 sec).
once<T>(GetListenable<T> listener, WorkerCallback<T> callback, {dynamic condition = true, Function? onError, void onDone()?, bool? cancelOnError}) Worker
once() will execute only 1 time when condition is met and cancel the subscription to the listener stream right after that. condition defines when callback is called, and can be a bool or a bool Function().

Typedefs

WorkerCallback<T> = dynamic Function(T callback)
A typedef representing a callback function used by workers.

Exceptions / Errors

ObxError
Represents an error specific to the use of GetX or Obx.