ReasonML Projects That People Have Expressed Demand For.
83
32 commits
updated Jul 26, 2020
Collection of project ideas for Reason which have been requested by people in the community.
Links to active efforts are included in this README. It's great to collaborate with people already working on some of these ideas, or start your own thing. Send a PR to list your effort under the "Active Efforts:" section, so people know how to team up.
Please discuss new project ideas on The Reason Discord Channel.
Simple APIs for doing web related requests/servers.
Active Efforts:
HTTP/2
implementation in OCaml.Write types in Reason .re files, generate various kinds of serializers and RPC frameworks based on them
dmenu replacement that exists, and is written in C++
(screenshot below).Example of Rofi Linux Package:

TextInput.h:A small C library ideally (with some bindings from Reason/OCaml to it) that will create a
native platform text input on any platform and render it wherever you tell it to within the
window. Native rendering frameworks like Revery can do its own drawing/compositing, including
the drawing of the "text input" border/background color, and then this native TextInput.h
could be placed on top of this region with transparent background color. This achieves totally
native text input/selection/keyboard(important for mobile). Once the text editing is done,
somehow "transfer" the ownership of rendering the entered text back to the drawing framework,
and remove the transparent text input overlayed on top of the screen.
For when someone isn't interested in using some of the newer HTTP libraries in OCaml.
Active Efforts:
Inspiration: https://www.npmjs.com/package/update-notifier

It is in JS, a similar functionnality for OPAM or esy written in OCaml could be a plus.
Rails-like scaffolding generator for certain kinds of apps. To avoid bikeshedding, you might even consider using the exact rails workflow.
A lightweight date/time library that doesn't rely on system dependencies, and can configure all date conversions from config files. (Either at build time or runtime?)
Date/Time experts, please contribute by pointing to excellent libraries and provide advice.
Approaches:
Related Effort:
The rehp project makes it
easier to implement new backends for Reason/OCaml when compiling in
the native workflow.
It can pretty easily be extended for other languages, and rehp
includes an example of extending it for PHP(Hack flavor).
devDependency you can add to your native Reason project.generate-cli-app ./path/to/Main.re where Main.re contains:let main = (
/**
* Doc for `thisArg` shown in the command line.
*/
~thisArg="default",
/**
* Doc for `mandatoryArgBecausNoDefault`.
*/
~mandatoryArgBecauseNoDefault
/**
* Doc for mandatory `positionalArgWithoutName`.
*/
positionalArgWithoutName
) => {
/**
* Your implementation goes here.
*/
};
/**
* <GENERATE_CLI_APP>
*/
And then it will replace the footer comment with the argument parsing, and help documentation code that allows you to run the generated binary as a command line app. For example once built, you could run:
MainCli.exe --help
which would provide output identical to
cmdliner's help output. For
an example, see refmt --help:

It could also generate man pages in your project's releases based on this.
Implementation:
@reason-native/pastel is a good option for terminal highlighting.int, string, floats etc.milk to infer the types.
(Would require a bit of support from Milk to be usable for other
purposes - so this would only make sense after milk is extended
to support other use cases).Related Effort:
Active Efforts:
pesy: Project by Manas to make new native projects in a single command. Bonus: It will keep your project/build config up to date based on your config in package.json by running esy pesy from your project root. Makes use of great automatically created cross platform CI.Active Efforts:

Print more readable structures in the browser for debugging purposes.
Active Efforts: reason-console-formatter
Design pages in JSX and output a static HTML website.
Active Efforts:
ReasonML Projects That People Have Expressed Demand For.
83
32 commits
updated Jul 26, 2020
Collection of project ideas for Reason which have been requested by people in the community.
Links to active efforts are included in this README. It's great to collaborate with people already working on some of these ideas, or start your own thing. Send a PR to list your effort under the "Active Efforts:" section, so people know how to team up.
Please discuss new project ideas on The Reason Discord Channel.
Simple APIs for doing web related requests/servers.
Active Efforts:
HTTP/2
implementation in OCaml.Write types in Reason .re files, generate various kinds of serializers and RPC frameworks based on them
dmenu replacement that exists, and is written in C++
(screenshot below).Example of Rofi Linux Package:

TextInput.h:A small C library ideally (with some bindings from Reason/OCaml to it) that will create a
native platform text input on any platform and render it wherever you tell it to within the
window. Native rendering frameworks like Revery can do its own drawing/compositing, including
the drawing of the "text input" border/background color, and then this native TextInput.h
could be placed on top of this region with transparent background color. This achieves totally
native text input/selection/keyboard(important for mobile). Once the text editing is done,
somehow "transfer" the ownership of rendering the entered text back to the drawing framework,
and remove the transparent text input overlayed on top of the screen.
For when someone isn't interested in using some of the newer HTTP libraries in OCaml.
Active Efforts:
Inspiration: https://www.npmjs.com/package/update-notifier

It is in JS, a similar functionnality for OPAM or esy written in OCaml could be a plus.
Rails-like scaffolding generator for certain kinds of apps. To avoid bikeshedding, you might even consider using the exact rails workflow.
A lightweight date/time library that doesn't rely on system dependencies, and can configure all date conversions from config files. (Either at build time or runtime?)
Date/Time experts, please contribute by pointing to excellent libraries and provide advice.
Approaches:
Related Effort:
The rehp project makes it
easier to implement new backends for Reason/OCaml when compiling in
the native workflow.
It can pretty easily be extended for other languages, and rehp
includes an example of extending it for PHP(Hack flavor).
devDependency you can add to your native Reason project.generate-cli-app ./path/to/Main.re where Main.re contains:let main = (
/**
* Doc for `thisArg` shown in the command line.
*/
~thisArg="default",
/**
* Doc for `mandatoryArgBecausNoDefault`.
*/
~mandatoryArgBecauseNoDefault
/**
* Doc for mandatory `positionalArgWithoutName`.
*/
positionalArgWithoutName
) => {
/**
* Your implementation goes here.
*/
};
/**
* <GENERATE_CLI_APP>
*/
And then it will replace the footer comment with the argument parsing, and help documentation code that allows you to run the generated binary as a command line app. For example once built, you could run:
MainCli.exe --help
which would provide output identical to
cmdliner's help output. For
an example, see refmt --help:

It could also generate man pages in your project's releases based on this.
Implementation:
@reason-native/pastel is a good option for terminal highlighting.int, string, floats etc.milk to infer the types.
(Would require a bit of support from Milk to be usable for other
purposes - so this would only make sense after milk is extended
to support other use cases).Related Effort:
Active Efforts:
pesy: Project by Manas to make new native projects in a single command. Bonus: It will keep your project/build config up to date based on your config in package.json by running esy pesy from your project root. Makes use of great automatically created cross platform CI.Active Efforts:

Print more readable structures in the browser for debugging purposes.
Active Efforts: reason-console-formatter
Design pages in JSX and output a static HTML website.
Active Efforts: