└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Index of available BuckleScript bindings and Libraries (and also some tooling) 2 | 3 | __** DEPRECATED **__ - Use https://redex.github.io/ instead 4 | 5 | 6 | - [Bindings](#bindings) 7 | - [Frontend (browser)](#frontend-browser) 8 | - [Backend (node)](#backend-node) 9 | - [Other platforms](#other-platforms) 10 | - [General purpose](#general-purpose) 11 | - [Testing](#testing) 12 | - [Libraries](#libraries) 13 | - [Frontend (browser)](#frontend-browser-1) 14 | - [Backend (node)](#backend-node-1) 15 | - [Other platforms](#other-platforms-1) 16 | - [General purpose](#general-purpose-1) 17 | - [Testing](#testing-1) 18 | - [Tooling](#tooling) 19 | - [Related links](#related-links) 20 | - [Contribute](#contribute) 21 | 22 | ## Bindings 23 | 24 | ### Frontend (browser) 25 | Name | Description | Status 26 | --- | --- | --- 27 | [bs-webapi-incubator](https://github.com/reasonml-community/bs-webapi-incubator) | (Incomplete) [Web APIs](https://developer.mozilla.org/en-US/docs/Web/Specification_list) | Incomplete (but then that's kind of the point) 28 | [bs-director](https://github.com/reasonml-community/bs-director) | [Director](https://github.com/flatiron/director) - Routing | Basic, Usable 29 | [bs-leaflet](https://github.com/reasonml-community/bs-leaflet) | [Leaflet.js](http://leafletjs.com/) - Interactive maps | "WIP" 30 | [bs-fetch](https://github.com/reasonml-community/bs-fetch) | [Fetch API](https://developer.mozilla.org/en/docs/Web/API/Fetch_API) | Feature complete, probably buggy 31 | [reason-react](https://github.com/reasonml/reason-react) | [React](https://facebook.github.io/react/) with some flavor | Mostly complete, but not stable 32 | [ReWebRTC](https://github.com/bsansouci/ReWebRTC) | [WebRTC API](https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API) | "Super simple" 33 | [reasongl](https://github.com/bsansouci/reasongl) | [OpenGL 2.0](https://www.khronos.org/registry/OpenGL/specs/gl/glspec20.pdf) and [WebGL](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) | Unknown, probably usable 34 | [bucklescript-jquery](https://github.com/nebuta/bucklescript-jquery) | [jQuery](https://jquery.com/) - Swiss army knife | Unknown, Out of date build process 35 | [bs-dom](https://github.com/0zat/bs-dom) | [DOM API](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model) | Very incomplete, "not test yet" 36 | [bucklescript-phx](https://github.com/phoenix-china/bucklescript-phx) | [Phoenix](http://www.phoenixframework.org/) client API | "work in progress" 37 | [bs-rebass](https://github.com/MasterOfPoppets/bs-rebass) | [Rebass](https://rebass-beta.now.sh/) - Stateless Component Library | Usable, Not complete 38 | [bs-glamor](https://github.com/poeschko/bs-glamor) | [glamor](https://github.com/threepointone/glamor) - inline css for react | Incomplete, but fully functional 39 | [bs-snabbdom](https://github.com/jordwest/bs-snabbdom) | [Snabbdom](https://github.com/snabbdom/snabbdom) - Virtual DOM | "highly experimental and incomplete" 40 | [bs-blueprintjs](https://github.com/shanewilson/bs-blueprintjs) | [Blueprint.js](https://github.com/palantir/blueprint) - React-based UI toolkit for the web | Unknown, seems comprehensive 41 | [reason-vue](https://github.com/aweary/reason-vue) | [Vue.js](https://vuejs.org/) - "progressive" UI framework | Unknown, basic? 42 | [reason-react-toolbox](https://github.com/astrada/reason-react-toolbox) | [react-toolbox](https://github.com/react-toolbox/react-toolbox) - React component library implementing Material Design | Automatically generated 43 | [bs-react-pdf](https://github.com/meafmira/bs-react-pdf) | [react-pdf](https://github.com/diegomura/react-pdf) | Usable, Incomplete original library 44 | [bs-d3](https://github.com/af/bs-d3) | [D3](https://github.com/d3/d3) - Data visualization library using SVG, Canvas and HTML | "Extremely incomplete and experimental" 45 | [bs-storybook](https://github.com/splish-me/bs-storybook) | [Storybook for React](https://github.com/storybooks/storybook) - Development environment for UI components | "Highly experimental and WIP" 46 | [bs-react-intl](https://github.com/alexfedoseev/bs-react-intl) | [react-intl](https://github.com/yahoo/react-intl) - React component library for internationalization | "Work in Progress" 47 | [bs-nprogress](https://github.com/alexfedoseev/bs-nprogress) | [NProgress](https://github.com/rstacruz/nprogress) - Slim progress bars | Complete? 48 | [reason-apollo](https://github.com/apollographql/reason-apollo) | [Apollo client](https://github.com/apollographql/apollo-client) - GraphQL client | Full-featured 49 | [bs-websockets](https://github.com/cxa/bs-websockets) | [WebSockets API](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API) | Unknown 50 | [bs-reason-apollo](https://github.com/Astrocoders/bs-reason-apollo) | [Apollo client](https://github.com/apollographql/apollo-client) bindings with a focus on js interop | Complete? 51 | 52 | ### Backend (node) 53 | Name | Description | Status 54 | --- | --- | --- 55 | [bs-node](https://github.com/reasonml-community/bs-node) | [Node API](https://nodejs.org/docs/latest/api/) | Barely started 56 | [bs-express](https://github.com/reasonml-community/bs-express) | [Express](https://expressjs.com/) - Web application framework | Usable, Not complete, Unit Tested 57 | [bs-discord.js](https://github.com/reasonml-community/bs-discord.js) | [Discord.js](https://discord.js.org) - JS Discord API | Functional but incomplete 58 | [bs-socket.io](https://github.com/reasonml-community/bs-socket.io) | [socket.io](https://github.com/socketio/socket.io) - Event-based communication | Mostly complete, "dead simple" 59 | [bs-spotify-web-api](https://github.com/ryb73/bs-spotify-web-api) | [spotify-web-api-node](https://github.com/thelinmichael/spotify-web-api-node) - [Spotify Web API](https://developer.spotify.com/web-api/) | Unknown 60 | [bs-glob](https://github.com/reasonml-community/bs-glob) | [node-glob](https://github.com/isaacs/node-glob) - File matching with glob patterns | Basic, Usable 61 | [bs-next](https://github.com/ulrikstrid/bs-next) | [Next.js](https://github.com/zeit/next.js) - Server-rendered React application framework | Complete? 62 | [bs-chalk](https://github.com/AndrewKvalheim/bs-chalk) | [Chalk](https://github.com/chalk/chalk) - Terminal string styling done right | Archived, undocumented, basic? 63 | [bs-puppeteer](https://github.com/zploskey/bs-puppeteer) | [Puppeteer](https://github.com/GoogleChrome/puppeteer) - API for Headless Chrome | "work in progress, and most features probably don't work yet" 64 | [bs-mongodb](https://github.com/PeteProgrammer/bs-mongodb) | [MongoDB](https://github.com/mongodb/node-mongodb-native) - Document-oriented database driver | "preliminary", "need-driven" 65 | 66 | ### Other platforms 67 | Name | Description | Status 68 | --- | --- | --- 69 | [bs-react-native](https://github.com/reasonml-community/bs-react-native) | [React Native](https://facebook.github.io/react-native/) Native mobile application framework | Nearly usable 70 | [bucklescript-electron](https://github.com/freebroccolo/bucklescript-electron) | [Electron](https://electron.atom.io/) | Cross-platform desktop application framework | Unknown 71 | [bs-vscode](https://github.com/glennsl/bs-vscode) | [Visual Studio Code extension API](https://code.visualstudio.com/docs/extensionAPI/vscode-api) | Incomplete 72 | [bs-atom](https://github.com/glennsl/bs-atom) | [Atom package API](https://atom.io/docs/api) | Barely started 73 | 74 | ### General purpose 75 | Name | Description | Status 76 | --- | --- | --- 77 | [bs-moment](https://github.com/reasonml-community/bs-moment) | [Moment.js](https://momentjs.com/) - Date processing | Unknown 78 | [bs-immutablejs](https://github.com/reasonml-community/bs-immutablejs) | [Immutable.js](https://facebook.github.io/immutable-js/) - Immutable collections | Unknown, probably usable 79 | [bs-axios](https://github.com/meafmira/bs-axios) | [Axios](https://github.com/mzabriskie/axios) - Promise based HTTP client for the browser and node.js | Basic, Usable 80 | [bs-json](https://github.com/reasonml-community/bs-json) | Low-level JSON encoding and decoding | Usable, Very experimental 81 | [bs-transit-js](https://github.com/reasonml-community/bs-transit-js) | [transit.js](https://github.com/cognitect/transit-js) - Marshaling | "rudimentary" 82 | [bs-history](https://github.com/reasonml-community/bs-history) | [history](https://github.com/reacttraining/history) - Cross-platform abstraction over the HTML history API | "WIP" 83 | [bs-numeral](https://github.com/drwlrsn/bs-numeral) | [Numeral.js](https://numeraljs.com/) - Formatting and manipulation of numbers | "Work in progress" 84 | [bs-most](https://github.com/Lokeh/bs-most) | [Most.js](https://github.com/cujojs/most) - Reactive programming toolkit | At least basic 85 | [bs-geofire](https://github.com/AndrewKvalheim/bs-geofire) | [GeoFire](https://github.com/firebase/geofire-js/) - Realtime location queries with Firebase | Complete, Maintained 86 | [bs-date-fns](https://github.com/SllyQ/bs-date-fns) | [date-fns](https://github.com/date-fns/date-fns) - Date utility library | Mostly complete 87 | 88 | ### Testing 89 | Name | Description | Status 90 | --- | --- | --- 91 | [bs-jest](https://github.com/reasonml-community/bs-jest) | [Jest](https://github.com/facebook/jest) | Incomplete, but fully functional 92 | [bs-react-test-renderer](https://github.com/reasonml-community/bs-react-test-renderer) | [react-test-renderer](https://github.com/facebook/react/tree/master/packages/react-test-renderer) | Mostly complete? 93 | [bs-benchmarkjs](https://github.com/glennsl/bs-benchmarkjs) | [Benchmark.js](https://benchmarkjs.com/) | Very very basic 94 | [bs-enzyme](https://github.com/rpowelll/bs-enzyme) | [Enzyme](https://github.com/airbnb/enzyme) - Testing utilities for React | "Very experimental" 95 | 96 | 97 | ## Libraries 98 | 99 | ### Frontend (browser) 100 | Name | Description | Status 101 | --- | --- | --- 102 | [bucklescript-tea](https://github.com/OvermindDL1/bucklescript-tea) | Implementation of [The Elm Architecture](https://guide.elm-lang.org/architecture/) (ie. TEA, ya get it?) | Usable but incomplete. Alpha maybe? 103 | [reprocessing](https://github.com/Schmavery/reprocessing) | High-level drawing library inspired by [Processing](https://github.com/Schmavery/reprocessing) | "100% a work in progress" 104 | [tween.re](https://github.com/xuu/tween.re) | Reimplementation of [tween.js](https://github.com/tweenjs/tween.js) in Reason | Demoable, Basic? 105 | [Regql](https://github.com/kennetpostigo/regql) | Simple Fetch-based GraphQL client | Basic 106 | 107 | ### Backend (node) 108 | 109 | ### Other platforms 110 | Name | Description | Status 111 | --- | --- | --- 112 | [reason-react-native-navigation](https://github.com/szymonzmyslony/reason-react-native-navigation) | "Simple React Native navigation" | Basic? Seems well documented 113 | [reason-nact](https://github.com/ncthbrt/reason-nact) | Actor library for Reason on node.js | Complete, well-documented 114 | 115 | ### General purpose 116 | Name | Description | Status 117 | --- | --- | --- 118 | [bs-batteries](https://github.com/meafmira/bs-batteries) | [Batteries](http://batteries.forge.ocamlcore.org/) - community-driven effort to standardize on an consistent, documented, and comprehensive development platform for the OCaml | Very Basic (only `Option`, `BatList`, `BatArray` available), WIP 119 | [immutable-re](https://github.com/facebookincubator/immutable-re) | Pure Reason implementation of persistent immutable data structures | Early alpha 120 | [reductive](https://github.com/reasonml/reductive) | [Redux](http://redux.js.org/) reimplementation | Proof of concept? 121 | [transducers.re](https://github.com/IwanKaramazow/transducers.re) | Clojure transducers in Reason | Unknown 122 | [bs-ocaml-protoc-json](https://github.com/mransan/bs-ocaml-protoc-json) | Runtime library for the [ocaml-protoc](https://github.com/mransan/ocaml-protoc) [Protocol Buffers](https://developers.google.com/protocol-buffers) code generator | Very usable, unit + conformance tests 123 | [bs-re:vamp](https://github.com/glennsl/bs-revamp) | Safe and functional API for JavaScript regexes | Full-featured, but experimental 124 | [vow](https://github.com/wokalski/vow) | Almost sound Promises for Bucklescript | Full-featured, Documented 125 | [rebug](https://github.com/glennsl/rebug) | Port of [debug](https://github.com/visionmedia/debug), a library for debug logging | Browser-only, missing a few advanced features 126 | [rebase](https://github.com/glennsl/rebase) | Minimal, cross-platform, BuckleScript-first replacement base library | BS only, incomplete, largely undocumented, untested and prone to change 127 | 128 | ### Testing 129 | Name | Description | Status 130 | --- | --- | --- 131 | [infinite-jest](https://github.com/glennsl/infinite-jest) | Cross-platform native/bs test framework | Usable, Alpha 132 | [ReSpect](https://github.com/PeteProgrammer/respect) | RSpec inspired test framework | "still in a very early stage" 133 | 134 | ## Tooling 135 | Name | Description | Status 136 | --- | --- | --- 137 | [bucklescript-brunch](https://github.com/OvermindDL1/bucklescript-brunch) | [Brunch](http://brunch.io/) plugin to compile Bucklescript code | Unknown 138 | [ocaml-language-server](https://github.com/freebroccolo/ocaml-language-server) | [Language Server Protocol](https://github.com/Microsoft/language-server-protocol) implementation for OCaml | Feature complete 139 | [vscode-reasonml](https://github.com/freebroccolo/vscode-reasonml) | Reason support for Visual Studio Code | Feature complete 140 | [reason-tools](https://github.com/freebroccolo/reason-tools) | Refmt in the browser | Continuously improving 141 | [babel-plugin-transform-bucklescript](https://github.com/freebroccolo/babel-plugin-transform-bucklescript) | Babel postprocessing transformations for BuckleScript generated JavaScript | Unknown 142 | [bs-loader](https://github.com/reasonml-community/bs-loader) | Bucklescript loader for Webpack | Usable 143 | [jeason](https://github.com/chenglou/jeason) | Converts JavaScript it into really bad Reason code | "crappy" 144 | [reason](https://github.com/facebook/reason) | Ocaml skin | Alpha? Very usable, but still also very much in flux 145 | [qnd](https://github.com/kennetpostigo/qnd) | Quick and Dirty development builds for reason | Usable 146 | [grunt-bucklescript](https://github.com/askucher/grunt-bucklescript) | Grunt plugin | Unknown 147 | [ReasonablyTyped](https://github.com/rrdelaney/ReasonablyTyped) | Converts Flow and TypeScript library definitions to Bucklescript interfaces | Basic 148 | [ts2re](https://github.com/joshaber/ts2re) | Convert TypeScript type declaration files to Reason externals | "super not ready for real use" 149 | [reason-scripts](https://github.com/reasonml-community/reason-scripts) | Create React App-like development environment setup script | Feature-rich and well-supported 150 | [bucklescript-tea-starter-kit](https://github.com/tcoopman/bucklescript-tea-starter-kit) | Starter kit for BuckleScript with [TEA (The Elm Architecture)](https://github.com/OvermindDL1/bucklescript-tea) | Fully working 151 | [rollup-plugin-bucklescript](https://github.com/shrynx/rollup-plugin-bucklescript) | rollup plugin for bucklescript complier | Functional but not well tested 152 | 153 | ## Related Links 154 | - [awesome-reasonml](https://github.com/vramana/awesome-reasonml) 155 | - [BuckleScript API](https://bucklescript.github.io/bucklescript/api/index.html) 156 | - [ReasonML Community wiki/FAQ](https://github.com/reasonml-community/wiki) 157 | 158 | ## Contribute 159 | Have you written a binding or library that's not listed here? Or come across one? Or found a mistake, however unlikely that might be? Then just submit a PR! It'll be very appreciated and probably even accepted! 160 | --------------------------------------------------------------------------------