Skip to content
This repository has been archived by the owner on May 5, 2023. It is now read-only.

Latest commit

 

History

History
57 lines (48 loc) · 1.65 KB

README.md

File metadata and controls

57 lines (48 loc) · 1.65 KB

Haskell Monto Broker

Alternative implementation of the original Monto broker. This implementation supports servers that have dependencies to each other. For example a type checking server could have a dependency on a parsing server that produces ASTs.

Build Instructions

  1. Build Requirements:

  2. Update the local repository of cabal, install the dependencies of the project and build the project.

    $ cd monto-broker
    $ cabal update
    $ cabal sandbox init
    $ cabal install --dependencies-only
    $ cabal build
  3. Start the broker with ./start.sh

Building the Broker using Docker

There is also an alternative to building the broker directly with system packages. This section assumes that docker has already been installed.

$ cd monto-broker
$ sudo docker build -t monto-broker .

# This command binds ports all required ports from the host os to the docker
# container and then starts the broker with the appropriate configuration
$ sudo docker run \
    -p 5000:5000 \
    -p 5001:5001 \
    -p 5010:5010 \
    -p 5011:5011 \
    -p 5012:5012 \
    -p 5013:5013 \
    monto-broker \
    broker --debug \
        --source 'tcp://*:5000' \
        --sink 'tcp://*:5001' \
        --servers '[(tokens/json,[Source],"tcp://*:5010"),(ast/json,[Source],"tcp://*:5011"),(outline/json,[Source,ast/json],"tcp://*:5012"),(completions/j
son,[Source,ast/json],"tcp://*:5013")]'