GithubHelp home page GithubHelp logo

jangocheng / orleankka Goto Github PK

View Code? Open in Web Editor NEW

This project forked from orleanscontrib/orleankka

0.0 1.0 0.0 9.9 MB

Functional API for Microsoft Orleans http://orleanscontrib.github.io/Orleankka/

License: Apache License 2.0

Batchfile 0.03% C# 92.28% F# 7.65% JavaScript 0.04%

orleankka's Introduction

Orleankka Logo

Orleankka is a functional API for Microsoft Orleans framework. It is highly suitable for scenarios where having composable, uniform communication interface is preferable, such as: CQRS, event-sourcing, re-routing, FSM, etc.

References: intro, features, slides and discussion.

Features

  • Message-based api with auto-generation of Orleans' interfaces
  • Special api bindings for C# and F# (DU, Pattern Matching, Tasks, Custom DSL)
  • Simplified programmatic configuration via fluent DSL (client, cluster, embedded, playground)
  • Convenient unit testing kit (stubs, mocks, expectations)
  • Redesigned streams api (actor subscriptions)
  • Declarative regex-based stream subscriptions (great for CQRS/ES projections)
  • Content-based filtering support for stream subscriptions (both imperative and declarative)
  • Switchable actor behaviors with built-in hierarchical FSM (behaviors)
  • Poweful actor/proxy invocation interceptors

How to install

To install client Orleankka library via NuGet, run this command in NuGet package manager console:

PM> Install-Package Orleankka

For server-side library:

PM> Install-Package Orleankka.Runtime

Check out "Getting started" guide: C# , F#.

Build sources

Clone repository and run the following in CLI from solution's root folder:

PM> Nake.bat

This will restore dependencies and build everything in debug mode. Run Nake.bat with -T switch to see available commands.

Packages

[inside]
Orleankka NuGet Core and client lib
Orleankka.Runtime NuGet Server-side runtime lib
Orleankka.TestKit NuGet Unit testing kit
Orleankka.FSharp NuGet F# core and client lib
Orleankka.FSharp.Runtime NuGet F# server-side runtime lib

Examples

C#
F#
Dependency Injection

Documentation

Complete documentation could be found on wiki.

Known issues

Integration tests (those using real actor system) won't work with XUnit visual studio runner due to inability to disable shadow copy xunit/visualstudio.xunit#9

Contributing

Bug-fix pull requests are always welcome. For new features or modifications, please first create an issue, so we can discuss it before any effort is wasted.

Community

Gitter

License

Apache 2 License

orleankka's People

Contributors

andyhoyle avatar antyadev avatar aprooks avatar attilah avatar damianreeves avatar davidpodhola avatar dzoukr avatar elanhasson avatar gitter-badger avatar mbernard avatar mhertis avatar pkese avatar romanstetsenko avatar yevhen avatar

Watchers

 avatar

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.