diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..05a0a2a --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,53 @@ +name: Deploy static content to Pages + +on: + push: + branches: ['main'] + + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: 'pages' + cancel-in-progress: true + +jobs: + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set up Node + uses: actions/setup-node@v3 + with: + node-version: 18 + cache: 'npm' + - name: Set-up OCaml + uses: ocaml/setup-ocaml@v2 + with: + ocaml-compiler: "5.1" + allow-prerelease-opam: true + - run: opam install . --deps-only --with-test + - run: opam exec -- dune build + - run: opam exec -- dune test + - name: Install dependencies + run: npm install + - name: Build + run: npm run build + - name: Setup Pages + uses: actions/configure-pages@v3 + - name: Upload artifact + uses: actions/upload-pages-artifact@v2 + with: + # Upload dist repository + path: './dist' + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..084acc6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +_build +node_modules +dist diff --git a/.ocamlformat b/.ocamlformat new file mode 100644 index 0000000..f93293c --- /dev/null +++ b/.ocamlformat @@ -0,0 +1,3 @@ +profile = default +let-binding-spacing=double-semicolon +version = 0.26.1 diff --git a/README.md b/README.md new file mode 100644 index 0000000..843c4e9 --- /dev/null +++ b/README.md @@ -0,0 +1,171 @@ +
+ Riot is a multi-core runtime for the OCaml programming language that + brings Erlang-style concurrency to OCaml via lightweight processes and + message passing. On top of it we're building all the components you + need to build reliable network services and applications. +
++ Apps aren't built in the void, so we are laying a foundation you can + trust – freeing you to focus on creating amazing apps. +
+ ++ The scheduler includes processes, message passing, and supervision + trees across all cores. It ships with multicore friendly network and + file system I/O, timers, and more. +
+ ++ A minimal, portable, and fast API on top of the + operating-system's evented I/O API. +
+ ++ Supercharged strings with efficient, ergonomic pattern matching. Ideal + for building fast parsers over streamed data. +
+ ++ Ergonomic, composable read/write streams for efficient IO. IO lets the + Riot stack share a common way of reading and writing from any source + into any destination. +
+ +