patrick f46557926e
All checks were successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/all-checks-complete Pipeline was successful
Modernise CI (#5)
Co-authored-by: Smaug123 <3138005+Smaug123@users.noreply.github.com>
Reviewed-on: #5
2025-09-09 08:18:41 +00:00
2025-09-09 08:18:41 +00:00
2025-09-09 08:18:41 +00:00
2025-09-09 08:18:41 +00:00
2025-09-09 08:18:41 +00:00
2025-09-09 08:18:41 +00:00
2024-01-29 00:37:48 +00:00
2025-09-09 08:18:41 +00:00
2025-09-09 08:18:41 +00:00
2023-08-04 21:23:56 +00:00
2022-10-29 14:46:56 +01:00
2023-08-04 21:08:12 +00:00

Raft

CI

A Raft implementation in F#. It allows pluggable persistent-store back-ends and communication channels, but out of the box you get an in-memory store and a simulated network.

You can play around with it via a command-line interface (RaftExplorer, which you can simply dotnet run), or a Fable web UI (cd RaftFable && npm install && npm start).

Development tips

The Node ecosystem being what it is, it is strongly recommended that you use the associated Nix flake to give you an environment in which you can run the Fable UI. Simply nix develop (optionally --profile .profile if you want to persist the configuration into a profile so that it doesn't get garbage-collected).

There are pull request checks on this repo, enforcing Fantomas-compliant formatting. After checking out the repo, you may wish to add a pre-push hook to ensure locally that formatting is complete, rather than having to wait for the CI checks to tell you that you haven't formatted your code. Consider performing the following command to set this up in the repo:

git config core.hooksPath hooks/

Before your first push (but only once), you will need to install the .NET local tools which form part of the pre-push hook:

dotnet tool restore
Description
A Raft simulator, in F# and Fable
Readme MIT 291 KiB
Languages
F# 96.6%
HTML 2.1%
Python 0.6%
Nix 0.4%
JavaScript 0.3%