• This repository has been archived on 31/Oct/2021
  • Stars
    star
    153
  • Rank 235,230 (Top 5 %)
  • Language
    F#
  • License
    The Unlicense
  • Created almost 11 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

[ARCHIVED] An actor framework for F#

Issue Stats Issue Stats

Cricket NuGet Status

Cricket is an actor library. The actor programming model is inherently concurrent, an actor is a primitive that wraps a computation, the computation is ran by sending messages to the actor. The actor can then respond to the receipt of the message by executing one or more of the following actions (possibly concurrently),

  • Create a number of new actors
  • Send a another message to other actors
  • Change the behaviour to be used upon receipt of the next message.

Currently there are a couple of actor libraries on the .NET platform

  • AkkaDotNet - This is a port of the scala based actor framework Akka. This is written in C# but does have an F# API.
  • Orleans - This is a Microsoft research project aiming to simplfy the development of scalable cloud based services, with a high level of abstraction over the actor programming model.
  • F# Core - The FSharp.Core library actually has its own actor implementation in the form of the MailboxProcessor<'T> type.

Cricket in no way aims to be a clone of either of these however it does draw on the ideas in all of the above frameworks as well as Erlang and OTP. Cricket aims to be as simple and safe to use as possible hopefully making it very difficult for you to shoot or self in the foot.

Building

  • Simply build Cricket.sln in Visual Studio, Mono Develop, or Xamarin Studio. You can also use the FAKE script:

    • Windows: Run build.cmd
      • AppVeyor Build status
    • Mono: Run build.sh
      • Travis Build Status

Simple Example

#r "Cricket.dll"
open Cricket

ActorHost.Start()

type Say =
    | Hello
    | HelloWorld
    | Name of string

let greeter = 
    actor {
        name "greeter"
        body (
            let rec loop() = messageHandler {
                let! msg = Message.receive()

                match msg with
                | Hello ->  printfn "Hello"
                | HelloWorld -> printfn "Hello World"
                | Name name -> printfn "Hello, %s" name
                return! loop()

            }
            loop())
    } |> Actor.spawn

greeter <-- Name("from F# Actor") 

Maintainer(s)

The default maintainer account for projects under "fsprojects" is @fsprojectsgit - F# Community Project Incubation Space (repo management)

More Repositories

1

zzarchive-VisualFSharpPowerTools

[ARCHIVED] Power commands for F# in Visual Studio
F#
310
star
2

zzarchive-Vulpes

Vulpes: a Deep Belief Net written in F#, and using Alea.cuBase to access the GPU.
JavaScript
116
star
3

zzarchive-powerpack

[ARCHIVE] Old F# PowerPack, Community Edition
F#
93
star
4

zzarchive-FSharp.Desktop.UI

F# MVC framework for WPF.
F#
80
star
5

zzarchive-docker-fsharp

[ARCHIVED] This is the archive of an older F# docker image repository. Now use https://hub.docker.com/_/microsoft-dotnet
Dockerfile
78
star
6

zzarchive-fsharp-dnx

F# + ASP.NET vNext (DNX) support
C#
72
star
7

zzarchive-generator-fsharp

[ARCHIVED] Yeoman F# generator
JavaScript
62
star
8

zzarchive-FSharp.Interop.ComProvider

F# type provider for COM interop.
F#
41
star
9

zzarchive-Filbert

A BERT serializer and BERT-RPC client for .Net, written in F#
F#
29
star
10

zzarchive-Tamarin

F# MVC framework for Xamarin.Forms
F#
22
star
11

zzarchive-Projekt

Deprecated: Please use Forge: https://github.com/fsharp-editing/Forge
F#
21
star
12

zzarchive-TPCombinators

Experimental project to build type providers using compositional combinators
F#
19
star
13

zzarchive-FSharpx.Reflection

[ARCHIVED] Reflection helpers for F#
F#
15
star
14

zzarchive-FSharp.Numerics.FuzzyIntervals

Basic library for fuzzy and interval calculus
F#
15
star
15

zzarchive-oxen

fsharp implementation of bull.js redis queue
F#
14
star
16

zzarchive-FSharp.Data.DbPedia

[ARCHIVED] An F# type provider for DBpedia
F#
13
star
17

zzarchive-FSharp.EntityFramework.MicrosoftSqlServer

EntityFramework 7 DbContext scaffolding for SqlServer.
F#
13
star
18

zzarchive-Fable

The project has moved to a separate organization. This project provides redirect for old Fable web site.
13
star
19

zzarchive-fsharp-dnx-templates

Visual Studio templates for creating DNX projects with F#.
HTML
11
star
20

zzarchive-FSharp.Data.Experimental.XenomorphProvider

[ARCHIVED] Experimental type provider sample for Xenomorph TimeScape
F#
11
star
21

zzarchive-azure-webapi-example

F#
10
star
22

zzarchive-ApiaryProvider

[ARCHIVED] Type provider for Apiary.io
F#
10
star
23

zzarchive-Amazon.CloudWatch.Selector

[ARCHIVE] DSL for querying against metrics stored in Amazon CloudWatch
F#
10
star
24

zzarchive-Foogle.Charts

[ARCHIVED] Foogle Charts has been replaced by XPlot
F#
9
star
25

zzarchive-FSharp.Data.HiveProvider

[ARCHIVED] F# Type Provider for Hadoop Hive
F#
9
star
26

zzarchive-FSCBenchmark

Benchmarks for the F# compiler
F#
3
star
27

zzarchive-Bigwig

[ARCHIVED] RabbitMQ bindings for F#
F#
2
star
28

zzarchive-FsSrGen

F#
2
star
29

zzarchive-FSharp.Data.WsdlProvider.Experimental

[ARCHIVED] An implementation of the WsdlProvider compatible with netfx and netcore
F#
1
star