Reactive Extensions implementation for the Go Programming Language
By contributing or commenting on issues in this repository, whether you've read them or not, you're agreeing to the Contributor Code of Conduct. Much like traffic laws, ignorance doesn't grant you immunity.
To install this library , use the following command: (doesn't work yet)
go get github.com/rxgo
- Provide RxGO
To run tests:
go test something
##Necessary Basic Static Methods
I'm cherry-picking from current ReactiveX/RxJS
- concat
- empty
- from
- fromArray
- fromEvent
- fromEventPattern
- fromPromise
- interval
- just/value
- merge
- never
- of
- range
- return
- throw
- timer
- zip
##Necessary Basic Operators
I'm cherry-picking operators from ReactiveX/RxJS
- buffer
- bufferCount (bufferWithCount)
- bufferTime (bufferWithTime)
- bufferToggle (buffer(obs, fn))
- bufferWhen (buffer(fn))
- catch
- combineLatest
- concat
- concatAll
- defaultIfEmpty
- delay
- flatMap
- filter
- forkJoin
- groupBy
- groupByUntil
- map
- mapTo
- merge
- mergeAll
- multicast
- observeOn
- publish
- reduce
- repeat
- retry
- retryWhen
- scan
- skip
- skipUntil
- startWith
- subscribeOn
- switchMap (flatMapLatest)
- take
- takeUntil
- timeout
- toArray
- toPromise
- withLatestFrom
- zip
- zipAll
##Necessary Support Types
- Observable
- Subscriber
- BehaviorSubject
- ConnectableObservable (multicast)
- refCount
- Subject
- ReplaySubject
##Schedulers
- immediate
- nextTick
##Macro Performance Tests
We want to add macro performance tests for all operators that create other Observables or Subscriptions internally. (Basically anything that does a lot of allocating) We may expand this to anything that buffers or schedules. These should be contrasted against their predecessors.
- combineLatest
- flatMap
- flatMap with Scalar
- groupBy
- merge
- mergeAll
- windowCount (windowWithCount) //need more here...
Micro Performance Tests
Micro performance tests are perhaps slightly less reliable than the macro performance tests, but still give us some insight into how we're doing.
##Creation
- concat
- empty
- from
- fromArray
- merge
- of
- range
- return
- throw //need more here...
##Operators
- bufferCount (bufferWithCount)
- catch
- combineLatest
- concat
- concatAll
- defaultIfEmpty
- flatMap
- filter
- groupBy
- groupByUntil
- map
- merge
- mergeAll
- reduce
- repeat
- scan
- skip
- startWith
- take
- toArray
- windowCount (windowWithCount)
- zip //need more here...
##TODO: figure out benchmarking
##Other Requirements
- some basic documentation
- community code of conduct
- install instructions
- build instructions
- basic build pipeline
- license
- solid version starting point (0.0.1)
- interop points from some canonical spec