https://github.com/davphla/rpc-ocaml
Attempted implementation of a RPC Module for OCaml
https://github.com/davphla/rpc-ocaml
ocaml ocaml-library parallel-computing rpc
Last synced: 12 months ago
JSON representation
Attempted implementation of a RPC Module for OCaml
- Host: GitHub
- URL: https://github.com/davphla/rpc-ocaml
- Owner: Davphla
- Created: 2023-07-13T09:32:26.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-18T20:38:49.000Z (over 1 year ago)
- Last Synced: 2025-02-12T15:48:26.486Z (about 1 year ago)
- Topics: ocaml, ocaml-library, parallel-computing, rpc
- Language: OCaml
- Homepage:
- Size: 1.69 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# RPC-Ocaml
This is an attempt for a contribution to the Ocaml library [Actors](https://github.com/Marsupilami1/actors-ocaml) by making a RPC module.
The goal was to create distributed actors that can communicate with each other using a remote procedure call (RPC) mechanism.
This was my first time working with Ocaml (Which was not easy task) in the goal for a contribution.
It was made during the context of my internship in the Laboratory of Informatics and Parallelism.
It is not complete, but still interesting to share as it is.
# Terminology
Dispatcher: All messages go through the dispatcher. Dispatcher receives requests from Executors, chooses a Worker and sends the request to the worker, receives the answer from the worker and replies back to the Executor.
Transport: Transports are a collection of Clients and Servers who make it possible for Workers and Executors to communicate with a Dispatcher using a specific protocol.
Worker: Workers are in charge of processing the requests, calling functions and returning the results to the dispatcher.
Executor: Executors are in charge of sending requests from user to the dispatcher and returning the results to the user.