-
Notifications
You must be signed in to change notification settings - Fork 339
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RxGo v2 #99
Comments
It is a great pleasure to revise your contribution (#95), thanks for the great dedication of hours. My idea is to release version 2 of RxGo before Go 2. Tell Me what you think. |
@teivah thank you very much for the contribution and hours devoted to the RxGo project refs: - #99 (comment) - #95
Major refactoring & new operators References on the work #99
Hey, My opinion about what should be part of RxGo v2. General
Creating Observables
just := Just(1, 2, 3)
just.Subscribe(...)
just.Subscribe(...) The second observer is going to receive nothing. This is because if an
Transforming Observables
Filtering Observables
Combining Observables
Error Handling Operators
Observable Utility Operators
Conditional and Boolean Operators
Mathematical and Aggregate Operators
Backpressure
Operators to Convert Observables
Documentation
Then we should improve the visibility of RxGo and the integration with ReactiveX documentation. For example, we need to find RxGo in such pages: http://reactivex.io/documentation/operators/to.html. |
Any updates? |
Sure, you can follow the evolution here: https://github.com/ReactiveX/RxGo/milestone/1 |
|
Is not complete, is under development follows the link of the planning: https://github.com/ReactiveX/RxGo/milestone/1 @teivah has been working on this version |
What I mean is it seems totally different with the current main branch. I guess it's rewrite. |
It is mainly a rewrite, yes. Except for some of the current operator implementations. But for the rest, the main logic has been rewritten and a bunch of new operators has been added. If you want to participate, the issues board is pretty much accurate. |
For information, I've done a complete refresh of v2 in #215 In a nutshell:
It's pretty hard to summarize everything. The v2 is definitely progressing. I'll start working on the documentation soon otherwise it'll remain obscure. |
I just released Installation
ReleaseGeneral
New Operators
Make sure to check the documentation ( |
I wonder if it's not time to turn version 2 to master branch? We have the new architecture and enough features (operators) implemented. |
@avelino The version released is still a beta one. This is a good opportunity to get some early feedback if any. |
In a nutshell:
Map(func(_ context.Context, item interface{}) (interface{}, error) {
// Map implementation
},
// Create multiple instances of the map operator
rxgo.WithPool(pool),
// Serialize the items emitted by their Customer.ID
rxgo.Serialize(func(item interface{}) int {
customer := item.(Customer)
return customer.ID
}), rxgo.WithBufferedChannel(1))
Example: rxgo.Just(1, 2, 3)(rxgo.WithContext(ctx), rxgo.WithBufferedChannel(5))
|
@teivah Congratulations on the release! I would be more than happy to contribute to the library, but the https://github.com/ReactiveX/RxGo/wiki/Roadmap looks outdated now. Thanks. |
This issue is a placeholder to discuss the future v2 release.
I know for example migrating
Observable
,Observer
etc. should be part of the v1 according to this card: https://github.com/ReactiveX/RxGo/projects/1#card-6433015Yet, if we do that it will not be backward compatible anymore with the existing API. For example, an user cannot wait anymore on the end of an
Observable
by doing a:Regarding the v2, I've started to implement few stuf which are part of this PR: #95. In a nutshell, it contains a migration of the main types into interfaces, a creation of new types (
Optional
,Single
etc.) and new operators. Is this PR going in the right direction for the v2?What else should we include?
Furthermore, what are the plans for the v2 in terms of scheduling? Shall we release something before or after Go 2?
The text was updated successfully, but these errors were encountered: