All Projects → phillipj → serverless-reasonml

phillipj / serverless-reasonml

Licence: other
serverless framework plugin for writing functions with Reason

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to serverless-reasonml

bs-examples
some small examples showing how to use bucklescript/reason
Stars: ✭ 20 (+53.85%)
Mutual labels:  reasonml
bs-rsuite-ui-react
Reason bindings for React Suite UI library
Stars: ✭ 26 (+100%)
Mutual labels:  reasonml
bs-remotedata
RemoteData and WebData to use with bs-fetch for BuckleScript
Stars: ✭ 18 (+38.46%)
Mutual labels:  reasonml
bs-spectacle
No description or website provided.
Stars: ✭ 15 (+15.38%)
Mutual labels:  reasonml
app-template-rescript-react
Adding ReScript with rescript-react on top of @snowpack/app-template-react
Stars: ✭ 44 (+238.46%)
Mutual labels:  reasonml
hypatia
Convert JavaScript doctrings (in jsdoc AST format) to ijavascript Jupyter Notebooks
Stars: ✭ 12 (-7.69%)
Mutual labels:  reasonml
Re Web
Experimental web framework for ReasonML & OCaml
Stars: ✭ 237 (+1723.08%)
Mutual labels:  reasonml
solar-weather
React Native Weather App w. Realm, Redux, ReasonReact & Forecast.io
Stars: ✭ 13 (+0%)
Mutual labels:  reasonml
reason-epitath
CPS sugar usage for React Render Props composition in ReasonML
Stars: ✭ 16 (+23.08%)
Mutual labels:  reasonml
lwt-node-starter
A simple starter for lwt-node
Stars: ✭ 13 (+0%)
Mutual labels:  reasonml
remotedata-re
Tools for fetching data from remote sources in Reason
Stars: ✭ 32 (+146.15%)
Mutual labels:  reasonml
rr-2048
2048 game in Reason React
Stars: ✭ 15 (+15.38%)
Mutual labels:  reasonml
reasonml-idea-plugin
ReasonML Language Plugin for IDEA
Stars: ✭ 320 (+2361.54%)
Mutual labels:  reasonml
granary
Tezos smart contract & dapp development toolkit
Stars: ✭ 67 (+415.38%)
Mutual labels:  reasonml
streaming
Fast, safe and composable streaming abstractions.
Stars: ✭ 104 (+700%)
Mutual labels:  reasonml
Reason Graphql Fullstack
Fullstack Reason + GraphQL Todo List App
Stars: ✭ 246 (+1792.31%)
Mutual labels:  reasonml
bs-declaredom
Strongly typed declarative markup for the DOM and CSS
Stars: ✭ 66 (+407.69%)
Mutual labels:  reasonml
revery-packager
Helper utility to package Revery applications into installable app bundles
Stars: ✭ 38 (+192.31%)
Mutual labels:  reasonml
reason-tree-sitter
ReasonML bindings for tree-sitter
Stars: ✭ 22 (+69.23%)
Mutual labels:  reasonml
reason-react-native-example
ReasonML React Native (Expo) example
Stars: ✭ 14 (+7.69%)
Mutual labels:  reasonml

serverless-reasonml

This is a serverless framework plugin that has been written for personal exploration while learning ReasonML and being curious about its plausible usage writing serverless functions.

It has been intentionally made to be compatible with the serverless-offline plugin.

Compared to great plugins like serverless-webpack and serverless-offline, this plugin is extremely trivial. Therefore assume there lots of edge cases that isn't covered yet, although it has been valuable for personal use to get builds triggered at the right time.

Usage

$ npm install --save serverless-reasonml bs-platform

Create a bsconfig.json with bucklescript configuration. Somewhat sensible example:

{
  "name": "using-serverless-reasonml",
  "version": "0.1.0",
  "sources": {
    "dir" : "src",
    "subdirs" : true
  },
  "package-specs": {
    "module": "commonjs",
    "in-source": true
  },
  "suffix": ".js",
  "warnings": {
    "error" : "+101"
  },
  "namespace": true,
  "refmt": 3
}

The example above expects source code to be put in the src directory.

Finishing it off, the serverless framework has to be told to use this plugin by putting the following in serverless.yml:

plugins:
  - serverless-reasonml

Known challenges

bs-platform is required in production because it contains helper functions used by the code bucklescript generates. At the time of writing this, there's lots of development tools included in bs-platform which results in a huge .zip file being created by the serverless framework.

The initial experiements I've done so far, results in archives near 50MB for extremely simple functions.

There are ongoing efforts in bs-platform splitting those development tools from the production utilities, until then, the archives created with this setup will be big in filesize. That's quickly a showstopper for Lamda@Edge functions which has a lot lower limit in regards to function archive filesize.

Deprecation notice

Although this was a really interesting approach to serverless apps, I have personally not been using serverless for a while now.

That's why this repository has been archived and read-only. I don't have any motivation working on this going forward, so developers stumbling upon this project, should not be expecting new cool updates.

If this project could serve as a starting point for other cool projects and ideas, that would be really cool!

Most importantly; just have fun folks!

Related resources

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].