Sign in

    moonchor

    Choreographic programming library for MoonBit.

    Choreographic
    MoonBit
    Download zip
    Author
    Version
    0.1.0
    License
    Apache-2.0
    Last updated
    last year
    Downloads
    145

    #Moonchor: Choreographic Programming Library for MoonBit

    #Todo

    Location

    pub trait Location : Show + Hash {
    name(Self) -> String
    }

    ChoreoContext

    type ChoreoContext

    ChoreoContext::comm

    fn ChoreoContext::comm[T :
    FromJson
    + ToJson, From : Location + Show + Hash, To : Location + Show + Hash](self : ChoreoContext, from : From, to : To, value : Located[T, From]) -> Located[T, To]

    ChoreoContext::locally

    fn ChoreoContext::locally[T, L : Location + Show + Hash](self : ChoreoContext, location : L, computation : (Unwrapper[L]) -> T) -> Located[T, L]

    Located

    type Located[T, L]

    NetworkConfig

    type NetworkConfig

    Unwrapper

    type Unwrapper[L]

    Unwrapper::unwrap

    fn Unwrapper::unwrap[T, L](self : Unwrapper[L], v : Located[T, L]) -> T

    comm

    fn comm[T :
    FromJson
    + ToJson, From : Location + Show + Hash, To : Location + Show + Hash](self : ChoreoContext, from : From, to : To, value : Located[T, From]) -> Located[T, To]

    locally

    fn locally[T, L : Location + Show + Hash](self : ChoreoContext, location : L, computation : (Unwrapper[L]) -> T) -> Located[T, L]

    make_local_config

    fn make_local_config(locations : Array[Location]) -> NetworkConfig

    run_choreo

    fn run_choreo[T, L : Location + Show + Hash](config : NetworkConfig, choreography : (ChoreoContext) -> T, role : L) -> T

    unwrap

    fn unwrap[T, L](self : Unwrapper[L], v : Located[T, L]) -> T

    Powered by MoonBit

    Site sourceReport issuePackagesBuild queueSkillsStatistics

    © 2026 mooncakes.io