Git Product home page Git Product logo

reactor-core-dotnet's Introduction

reactor-core-dotnet is no longer actively maintained by VMware, Inc.

reactor-core-dotnet

Fluent reactive programming library for C# on top of Reactive-Streams, mirroring the Reactor-Core for JVM.

NuGet: https://www.nuget.org/packages/Reactor.Core/

Install:

PM> Install-Package Reactor.Core

reactor-core-dotnet's People

Contributors

akarnokd avatar smaldini avatar trevormarshall avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

reactor-core-dotnet's Issues

reactor-netty port and reactor-extra

i will start porting these two projects, reactor-netty will be ported on a top of DotNetty but the HTTP server/client will be not ported as of now because DotNetty doesn't support yet. Regarding the reactor-extra package i will port the retry logic and also the math, i will try to build also Orleans and Akka Schedulers so we can interact with them.

Make IMono awaitable

This is only an idea: as IMono<> essentially represents an eventually received value, it makes it quite close in mind to what Task<> can do. To increase interoperability with existing .NET code, it could implement custom awaiter methods and allow to be returned directly from async/await code.

C# allows to build custom awaiters using indirect API, which could be consolidated into two interfaces (representing iterator pattern and implemented by Task):

interface IMono<T>
{
    IMonoAwaiter<T> GetAwaiter();
}

interface IMonoAwaiter<T> : INotifyCompletion
{
    bool IsCompleted { get; }
    void OnCompleted(Action continuation);
    T GetResult();
}

// use
public async IMono<int> ComputeInner()
{
    return Mono.From(() => 1);
}

public async Task<User> ComputeOuter()
{
    var id = await ComputeInner();
    return await db.GetUserAsync(id);
}

This way you can not only build monos from tasks, but also be able to use monos in async/await code at zero cost.

Simulating a queue

Hi,

Is there an equivalent in Reactor .net of the java work queue? Basically, I've got a situation where I want one thread to push an object on to a queue and then a second thread to pop the queue and process the item.
ARe there any classes/constructs in Reactor core that will help with this?
Any help appreciated.
Kind regards
Sean.

Release to NuGet

Releasing to NuGet is trivial with NuGet Package Explorer. However, such releases require a NuGet private key. Since this is not my own project anymore, we should figure out how to release under a Reactor-banner to NuGet, i.e., I or @smaldini could perform the action.

Copy documentation from Reactor-Core JVM

Now that the Flux and Mono extension-method classes have relevant methods specified, it would be great someone would take the arguably tedious task and copy the Javadoc documentation over and have it as a C# documentation of ///.

It would be great {@link ...} were turned into <see cref=""/> tags.

I'm working on the operator implementations but I don't expect any conflicts in the Flux.cs and Mono.cs files themselves.

Examples

This is an awesome project! Would love to see some examples of how to use it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.