{"id":13726210,"url":"https://github.com/ml-in-barcelona/jsoo-react","last_synced_at":"2025-07-14T19:31:51.203Z","repository":{"id":39386700,"uuid":"158460341","full_name":"ml-in-barcelona/jsoo-react","owner":"ml-in-barcelona","description":"js_of_ocaml bindings for ReactJS. Based on ReasonReact.","archived":false,"fork":false,"pushed_at":"2023-10-09T09:45:09.000Z","size":1993,"stargazers_count":137,"open_issues_count":24,"forks_count":19,"subscribers_count":10,"default_branch":"main","last_synced_at":"2024-11-08T13:03:34.870Z","etag":null,"topics":["js-of-ocaml","ocaml","ppx","react","reasonml"],"latest_commit_sha":null,"homepage":"https://ml-in-barcelona.github.io/jsoo-react","language":"OCaml","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ml-in-barcelona.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":"jchavarri"}},"created_at":"2018-11-20T22:39:35.000Z","updated_at":"2024-11-05T00:27:39.000Z","dependencies_parsed_at":"2024-01-06T02:03:27.344Z","dependency_job_id":"f7ee42df-575a-434c-a900-a1b772dd56d2","html_url":"https://github.com/ml-in-barcelona/jsoo-react","commit_stats":null,"previous_names":["reason-in-barcelona/jsoo-react"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ml-in-barcelona%2Fjsoo-react","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ml-in-barcelona%2Fjsoo-react/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ml-in-barcelona%2Fjsoo-react/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ml-in-barcelona%2Fjsoo-react/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ml-in-barcelona","download_url":"https://codeload.github.com/ml-in-barcelona/jsoo-react/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225482440,"owners_count":17481214,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["js-of-ocaml","ocaml","ppx","react","reasonml"],"created_at":"2024-08-03T01:02:55.835Z","updated_at":"2024-11-23T03:09:38.453Z","avatar_url":"https://github.com/ml-in-barcelona.png","language":"OCaml","funding_links":["https://github.com/sponsors/jchavarri"],"categories":["OCaml"],"sub_categories":[],"readme":"# jsoo-react\n\n[![Actions Status](https://github.com/ml-in-barcelona/jsoo-react/workflows/CI/badge.svg?branch=main)](https://github.com/ml-in-barcelona/jsoo-react/actions?query=branch%3Amain)\n\nBindings to [React](https://reactjs.org/) for [js_of_ocaml](https://ocsigen.org/js_of_ocaml/), including the JSX ppx.\n\n\u003e **Status**: experimental phase\n\u003e\n\u003e The library is expected to break backwards compatibility on minor releases.\n\nAdapted from [ReasonReact](https://github.com/reasonml/reason-react/).\n\nBug reports and contributions are welcome!\n\n## Getting started\n\n### New project\n\nFor new projects, the best way to start is by using [the jsoo-react template](https://github.com/ml-in-barcelona/jsoo-react-template).\n\n### Existing project\n\n1. Install the `jsoo-react` package:\n\n    ```bash\n    opam install jsoo-react\n    ```\n\n2. Add `jsoo-react` library and ppx to [dune](https://dune.readthedocs.io/en/stable/) file of your executable JavaScript app:\n\n    ```dune\n        (executables\n        (names index)\n        (modes js)\n        (libraries jsoo-react.lib)\n        (preprocess\n        (pps jsoo-react.ppx)))\n    ```\n\n3. Provision React.js library\n\n    `jsoo-react` uses `require` to import React and ReactDOM. This means that you will likely need to use a bundler such as Webpack or rollup.js.\n\n    Note that at this moment, `jsoo-react` is compatible with **React 16**, so be sure to have the appropriate constraints in your `package.json`.\n\n## Contributing\n\nTake a look at our [Contributing Guide](CONTRIBUTING.md).\n\n## Acknowledgements\n\nThanks to the authors and maintainers of ReasonReact, in particular [@rickyvetter](https://github.com/rickyvetter) for his work on the v3 of the JSX ppx.\n\nThanks to the authors and maintainers of Js_of_ocaml, in particular [@hhugo](https://github.com/hhugo) who has been answering many many questions in GitHub threads.\n\nThanks to the Lexifi team for creating and maintaining [gen_js_api](https://github.com/LexiFi/gen_js_api).\n\nThanks to [@tmattio](https://github.com/tmattio/) for creating Spin and the jsoo-react template :raised_hands:\n\nAnd thanks to the team behind React.js! What an amazing library :)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fml-in-barcelona%2Fjsoo-react","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fml-in-barcelona%2Fjsoo-react","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fml-in-barcelona%2Fjsoo-react/lists"}