To get started quickly building this TodoMVC web program with the PolyRPC runtime in Haskell, you need one thing to use Miso
framework for the client and the other to use Scotty
framekwork for the server.
For the client side, we recommend the nix
package manager with miso's binary cache provided by cachix
.
For the server side, you need stack
.
git clone https://github.com/kwanghoon/todomvc
cd todomvc/webserver
stack build
cd ../webclient
nix-build
To run the server, in todomvc/webserver,
stack exec -- webserver-exe todomvc
To run the client, in todomvc/webclient,
xdg-open ./result/bin/app.jsexe/index.html
Note my environment:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.10
Release: 20.10
Codename: groovy
$ uname -a
Linux khchoi-ThinkPad-X1-Carbon-5th 5.8.0-43-generic #49-Ubuntu SMP Fri Feb 5 03:01:28 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Our program is a multi-tier TodoMVC program where the client and server parts are written in a single program! It shows the same client UI as in the other TodoMVC programs but it also includes the server part with a list of todo items. The client UI interacts with the server to read and modify the list.
- The polyrpc compilation system being developed by Kwanghoon Choi
- The experimental Scala-based PolyRPC runtime where TodoMVC written in PolyRPC was developed by Bob Reynders.