rx 0.0.3 rx: ^0.0.3 copied to clipboard
Reactive Extensions Library for Dart providing an API for asynchronous programming with observable streams.
Reactive Dart #
Reactive Extensions Library for Dart providing an API for asynchronous programming with observable streams.
Reactive is created in the style of ReactiveX, and does not depend on Dart Streams. At this point this code is quite experimental, and might miss features or have serious bugs.
This library is open source and well tested. Development happens on GitHub. Feel free to report issues or create a pull-request there. General questions are best asked on StackOverflow.
The package is hosted on dart packages. Up-to-date class documentation is created with every release.
Currently the Dart programming language (or my inability to use it correctly) is blocking a more pleasant API in a few places:
- The lack of extension methods in Dart makes it awkward to access operator functions and constructor methods: dart-lang/language#40, dart-lang/language#41, dart-lang/language#42, dart-lang/language#177, dart-lang/language#309, dart-lang/language#8547.
- For some reason type inference over chained operators does not work. For example
observable.pipe2(filter(()) => ...), map(() => ...))
is unable to correctly infer the types in the second operator, whileobservable.pipe(filter() => ...).pipe(map(() => ...)
does. - The lack of variable length arguments and generics requires duplicated functions and typedefs with a number suffix (see above).
License #
The MIT License, see LICENSE.