rules_reason - 📐Reason/OCaml rules and tools for Bazel

  •        34

A collection of OCaml, ReasonML, and BuckleScript rules and tools for Bazel. If you just cloned this repo and you have both those tools installed, feel free to start with a bazel build //... to get everything warmed up.

https://github.com/ostera/rules_reason

Tags
Implementation
License
Platform

   




Related Projects

rules_go - Go rules for Bazel

  •    Go

The master branch is only guaranteed to work with the latest version of Bazel.Create a file at the top of your repository named WORKSPACE and add one of the snippets below, verbatim. This will let Bazel fetch necessary dependencies from this repository and a few others.

vscode-reasonml - OCaml & Reason support for Visual Studio Code

  •    TypeScript

There is an #editorsupport channel on the Reason discord server. If you would like to discuss an idea or need help or have other feedback you can usually find me (@freebroccolo) idling there. The Reason installation steps also installs Merlin for you, so you can skip the Merlin installation in the next section.

bs-react-native - BuckleScript bindings for React Native

  •    OCaml

Great that you want to use Reason with React Native! To get everything running are just a couple of steps. Let's assume that you already have a React Native project. Otherwise follow the React Native instructions until you have your app running. and start the watcher with yarn run watch if you haven't done it yet.


Bazel - Google's own build tool

  •    Java

Bazel is a build tool that builds code quickly and reliably. It is used to build the majority of Google's software, and thus it has been designed to handle build problems present in Google's development environment. A comprehensive, built-in set of rules lets you build software for a wide variety of languages and platforms right out of the box.

reason-react - Reason bindings for ReactJS

  •    OCaml

Then add some files somewhere (don't forget to change bsconfig.json, if needed).

reason-scripts - :beginner: Create a ReasonML and React development environment

  •    Javascript

Reason Scripts provides a JS-like development environment for developing web apps with the Reason programming language and React. It bootstraps an environment to automatically compile all Reason code to JS, provide features like reloading and bundling, and seamlessly use JS code from Reason. Make sure to install bs-platform globally using npm instead of yarn.

reason-tools - Adds Reason to the browser

  •    OCaml

Adds Reason to the browser. When you trigger the extension, it will copy the text you have highlighted and put it into an editor. The text is then translated into the corresponding Reason/OCaml text. Reason Tools will automatically convert between .re, .ml, .rei, and .mli text. In browsers that support it (currently just Chrome), a shortcut is added to open the extension with the highlighted text: Alt+D.

intro-to-reason-compilation - Ready up!

  •    Shell

Note that this is for the curious people. You don't need to know these things immediately when you start consuming Reason and the rest. If you just want to try Reason, this is the right place to start instead. We start with the most basic OCaml compiler commands and gradually build up to a productive workflow. Each step resides in its independent, fully functional folder.

reductive - Redux in Reason

  •    OCaml

A reimplementation of redux in Reason. However, in the spirit of unifying the Reason community around an authoritative Redux implementation and to avoid churn, we'll polish Reductive to make it production-ready for those who do wish to use it anyway.

guetzli - Perceptual JPEG encoder

  •    C++

Guetzli is a JPEG encoder that aims for excellent compression density at high visual quality. Guetzli-generated images are typically 20-30% smaller than images of equivalent quality generated by libjpeg. Guetzli generates only sequential (nonprogressive) JPEGs due to faster decompression speeds they offer.There's also a Bazel build configuration provided. If you have Bazel installed, you can also compile Guetzli by running bazel build -c opt //:guetzli.

colossus - Colossus — An example microservice architecture for Kubernetes using Bazel, Go, Java, Docker, Kubernetes, Minikube, Gazelle, gRPC, Prometheus, Grafana, and more

  •    Python

Wait a second, these services don't do anything meaningful! Nope, they sure don't. But that's okay because the point of this project is to show you how to get the basic (yet not-at-all-trivial) plumbing to work. Colossus is a boilerplate project that's meant as a springboard to more complex and meaningful projects. Getting all of these technologies to work together was a real challenge. I had to dig through countless GitHub issues and dozens of example projects to make all these things work together. I'm offering this repo as a starter pack for other people with a Bazel monorepo targeting Kubernetes.

Bucklescript - A backend for the OCaml compiler which emits JavaScript.

  •    OCaml

BuckleScript leverages the existing OCaml compiler and toolchain to produce JavaScript that closely resembles the original OCaml. It isn't a new language. It simply takes OCaml, a fast, pragmatic and typed language, and makes it compile to clean, readable and performant JavaScript code. This allows the users to write in an industrial-strength language while using the existing, familiar JavaScript tools (npm/yarn, bundlers, minifiers, devtools, etc.) and accessing the vast ecosystem from both JavaScript and OCaml.

bucklescript-tea - TEA for Bucklescript

  •    OCaml

This is a library for OCaml-via-Bucklescript (though in the future to support native compilation for back-end template generation) that follows TEA/The Elm Architecture as I see it in various incarnations. You can read more about it here.

klipse - A simple client-side code evaluator pluggable on any web page: clojure, ruby, javascript, python, scheme, es2017, jsx, brainfuck, c++, reagent, lua, ocaml, reasonml

  •    Clojure

A simple client-side code evaluator pluggable on any web page: clojure, ruby, javascript, python, scheme, es2017, jsx, brainfuck, c++, reagent, ocaml, reason, common lisp

focus - Prevents you from being on reddit or facebook all day

  •    Python

Go to System Preferences -> Network -> Advanced -> DNS and add 127.0.0.1 as your DNS server. Firewall rules involving schedules and timeframes can get complicated fast. For this reason, the scheduling specification is pure Python, so you can make your filtering rules as simple or as complex as you want.

Reason - Simple, fast & type safe code that leverages the JavaScript & OCaml ecosystems

  •    OCaml

Reason lets you write simple, fast and quality type safe code while leveraging both the JavaScript & OCaml ecosystems. Reason is not a new language; it's a new syntax and toolchain powered by the battle-tested language, OCaml. Reason gives OCaml a familiar syntax geared toward JavaScript programmers, and caters to the existing NPM/Yarn workflow folks already know.