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.
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, while
observable.pipe(filter() => ...).pipe(map(() => ...)does.
- The lack of variable length arguments and generics requires duplicated functions and typedefs with a number suffix (see above).
The MIT License, see LICENSE.