{"id":13494721,"url":"https://github.com/melange-re/melange","last_synced_at":"2026-03-05T09:33:13.229Z","repository":{"id":37031829,"uuid":"225087307","full_name":"melange-re/melange","owner":"melange-re","description":"A mixture of tooling combined to produce JavaScript from OCaml \u0026 Reason","archived":false,"fork":false,"pushed_at":"2026-03-01T23:19:56.000Z","size":860473,"stargazers_count":960,"open_issues_count":50,"forks_count":61,"subscribers_count":18,"default_branch":"main","last_synced_at":"2026-03-02T01:58:17.756Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://melange.re","language":"OCaml","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/melange-re.png","metadata":{"files":{"readme":"README.md","changelog":"Changes.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"anmonteiro","custom":"https://www.paypal.me/anmonteiro"}},"created_at":"2019-12-01T00:29:21.000Z","updated_at":"2026-03-01T23:19:58.000Z","dependencies_parsed_at":"2024-04-02T06:24:22.456Z","dependency_job_id":"c8f5e7bb-d6d7-42de-839f-8c9c1112e9ab","html_url":"https://github.com/melange-re/melange","commit_stats":null,"previous_names":[],"tags_count":38,"template":false,"template_full_name":null,"purl":"pkg:github/melange-re/melange","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/melange-re%2Fmelange","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/melange-re%2Fmelange/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/melange-re%2Fmelange/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/melange-re%2Fmelange/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/melange-re","download_url":"https://codeload.github.com/melange-re/melange/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/melange-re%2Fmelange/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30117718,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T08:19:04.902Z","status":"ssl_error","status_checked_at":"2026-03-05T08:17:37.148Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T19:01:27.514Z","updated_at":"2026-03-05T09:33:13.179Z","avatar_url":"https://github.com/melange-re.png","language":"OCaml","funding_links":["https://github.com/sponsors/anmonteiro","https://www.paypal.me/anmonteiro"],"categories":["\u003ca name='Repositories'\u003e\u003c/a\u003eRepositories","OCaml"],"sub_categories":["\u003ca name='Tooling'\u003e\u003c/a\u003eTooling"],"readme":"# Melange\n\n### Melange compiles OCaml / Reason to JavaScript\n\nPowered by the versatile OCaml type system, with best-in-class type inference,\nMelange produces robust JavaScript code.\n\n+ [Melange](#melange)\n  * [Installation](#installation)\n    - [OPAM](#opam)\n    - [Nix](#nix)\n    - [OCaml version compatibility](#ocaml-version-compatibility)\n  * [Editor integration](#editor-integration)\n  * [Community](#community)\n  * [FAQ](#faq)\n    - [How does this project relate to other tools?](#how-does-this-project-relate-to-other-tools)\n  * [Contributing](#contributing)\n  * [Acknowledgments](#acknowledgments)\n  * [Licensing](#licensing)\n\nSponsored by:\n\n\u003cdiv style=\"display: inline;\"\u003e\n  \u003ca href=\"https://ahrefs.com\"\u003e\n    \u003cimg src=\"./docs/images/ahrefs-logo.png\" height=\"50px\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://ocaml-sf.org/\"\u003e\n    \u003cimg src=\"./docs/images/ocsf_logo.svg\" height=\"50px\"\u003e\n  \u003c/a\u003e\n  \u003cdiv style=\"display: inline; margin-left: 6px;\"\u003e\n    \u003ca href=\"https://www.instapainting.com\"\u003e\n      \u003cimg src=\"./docs/images/instapainting-logo.png\" height=\"30px\"\u003e\n    \u003c/a\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n## Installation\n\nCheck [melange.re](https://melange.re/) to get started.\n\n### [OPAM](https://opam.ocaml.org/)\n\nMelange is released to OPAM. Install it with:\n\n```shell\n$ opam install melange\n```\n\n#### Template\n\n[melange-re/melange-opam-template](https://github.com/melange-re/melange-opam-template)\nprovides a GitHub\n[template repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template)\nthat can be used as a project starter.\n\n### [Nix](https://nixos.org/learn.html)\n\nMelange has good support for Nix:\n\n- `github:melange-re/melange` can be added as a\n  [flake](https://nixos.wiki/wiki/Flakes) input\n- the melange flake provides a `melange.overlays.default` overlay that adds\n  melange to `pkgs.ocamlPackages.melange`\n- the `melc` binary can be run with `nix run github:melange-re/melange`, e.g.\n  `nix run github:melange-re/melange/2.0.0 -- --help`\n\n### OCaml version compatibility\n\n- Melange v3.0 works on OCaml 4.14 ([v3-414](https://github.com/melange-re/melange/releases/tag/3.0.0-414)) and 5.1 ([v3-51](https://github.com/melange-re/melange/releases/tag/3.0.0-51)).\n- Melange v2.0 works on OCaml 5.1 only.\n- Melange v1.0 can build projects with OCaml \u003e= 4.13 (including OCaml 5.x).\n  - Editor integration only works on OCaml 4.14, because Melange emits [`.cmt`\n    artifacts](https://ocaml.org/p/ocaml-base-compiler/4.14.1/doc/Cmt_format/index.html)\n    targeting the OCaml 4.14 binary format.\n\n### Editor integration\n\nMelange has first class support in Dune.\n[`ocaml-lsp`](https://github.com/ocaml/ocaml-lsp) or\n[Merlin](https://github.com/ocaml/merlin) works as usual. In VSCode, the\n[VSCode OCaml Platform](https://github.com/ocamllabs/vscode-ocaml-platform)\nextension is recommended.\n\n## Community\n\n- There's a [`#melange` channel](https://discord.gg/mArvFMQKnK) in the\n  [ReasonML Discord](https://discord.gg/reasonml)\n\n## FAQ\n\n### How does this project relate to other tools?\n\nThis project is forked from an earlier version of the [ReScript\ncompiler](https://github.com/rescript-lang/rescript-compiler/), focused on a\ndeeper integration with the OCaml ecosystem. Such integration makes it easy to\nshare code between backend and frontend using e.g. Dune's virtual libraries.\n\nMelange 1.0 includes a ReScript compatibility layer to maintain compatibility\nwith ReScript syntax - preserving access to ReScript's package ecosystem. Both\nReScript and Melange have diverged significantly since then, and this\ncompatibility layer was removed in Melange 2.0.\n\nA small write-up with more details on the motivation behind this project can be\nfound in the announcement [blog\npost](https://anmonteiro.com/2021/03/on-ocaml-and-the-js-platform/). Additional\nwrite-ups exist at [anmonteiro.substack.com](https://anmonteiro.substack.com/)\n\nBelow is a quick comparison between Melange and other tools:\n\n\n| Name                                   | Purpose                                                        | Dependencies                       | Notes                                                                               |\n| -------------------------------------- | -------------------------------------------------------------- | ---------------------------------- | ----------------------------------------------------------------------------------- |\n| [OPAM](https://opam.ocaml.org)         | Package manager                                                | None                               | Obtaining dependencies such as `dune` or `reason` |\n| [Dune](https://dune.build/)            | Build tool                                                     | Installed with e.g. `opam`         | Composable build tool for OCaml; supports composing custom rules to build any project |\n| [Reason](https://reasonml.github.io/)  | Syntax                                                         | Installed with e.g. `opam`         | Alternative syntax to OCaml |\n| [Melange](https://melange.re)          | Compiler that emits Script                                     | OPAM (to install), Dune (to build) | Supports OCaml and Reason; derived from ReScript, focused on deeper integration with OCaml |\n| [ReScript](https://rescript-lang.org/) | The brand around a syntax and a compiler that emits JavaScript | None                               | Distributed via NPM as prebuilt binaries; previously called BuckleScript |\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## Acknowledgments\n\n* Thanks to the [ReScript](https://github.com/rescript-lang/rescript-compiler)\n  project, its author and maintainer [@bobzhang](https://github.com/bobzhang),\n  and its many\n  [contributors](https://github.com/rescript-lang/rescript-compiler/graphs/contributors).\n  Melange is a fork of ReScript, and continues to incorporate patches to\n  ReScript on a regular basis.\n* Thanks to the [OCaml](https://ocaml.org) team, obviously, without such a\n  beautiful yet practical language, this project would not exist.\n* Thanks to [Bloomberg](https://www.techatbloomberg.com) and\n  [Facebook](https://github.com/facebook/). The ReScript project began at\n  Bloomberg and was published in 2016; without the support of Bloomberg, it\n  would not have happened. ReScript was funded by Facebook since July 2017.\n\nSee also [Credits.md](./Credits.md) concerning some individual components of\nMelange.\n\n## Licensing\n\nSee [COPYING](./COPYING) and [COPYING.LESSER](./COPYING.LESSER)\n\nSee [Credits](./Credits.md) for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmelange-re%2Fmelange","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmelange-re%2Fmelange","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmelange-re%2Fmelange/lists"}