package ojs

  1. Overview
  2. Docs
Runtime Library for gen_js_api generated libraries

Install

Dune Dependency

Authors

Maintainers

Sources

v1.1.2.tar.gz
md5=58ab892f1702400247d692f44215b365
sha512=26196c124f6c4dc488012990ac99dbde2377b17ac178709e55cf493385ba6253c05d1118415f55accc4cb487e6b4494c24a2f8ac113f65a374e55f3036f6b9ec

Description

To be used in conjunction with gen_js_api

Published: 13 Mar 2023

README

gen_js_api: easy OCaml bindings for JavaScript libraries

Overview

gen_js_api aims at simplifying the creation of OCaml bindings for JavaScript libraries. It must currently be used with the js_of_ocaml compiler, although other ways to run OCaml code "against" JavaScript might be supported later with the same binding definitions (for instance, Bucklescript, or direct embedding of a JS engine in a native OCaml application).

gen_js_api is based on the following ideas:

  • Authors of bindings write OCaml signatures for JavaScript libraries and the tool generates the actual binding code with a combination of implicit conventions and explicit annotations.

  • The generated binding code takes care of translating values between OCaml and JavaScript and of dealing with JavaScript calling conventions.

  • All syntactic processing is done by authors of bindings: the client code is normal OCaml code and does not depend on custom syntax nor on JS-specific types.

gen_js_api can be used in two complementary ways:

Examples

The repository contains some examples of OCaml bindings to JavaScript libraries created with gen_js_api:

Documentation

Related projects

  • js_of_ocaml: The compiler and runtime system on which gen_js_api relies. (Note: gen_js_api doesn't depend on js_of_ocaml's OCaml library, nor on its language extension.)

  • goji: A DSL to describe OCaml bindings for JavaScript libraries.

  • DefinitelyMaybeTyped: A project to parse DefinitelyTyped interfaces and produce OCaml interfaces.

  • ReScript: Another compiler from OCaml to JavaScript, featuring the genType ppx for generating TS / Flow types and runtime converters.

About

gen_js_api has been created by LexiFi for porting a web application from JavaScript to OCaml. The tool has been used in production since 2015.

This gen_js_api package is licensed by LexiFi under the terms of the MIT license.

See see Changelog

Contact: alain.frisch@lexifi.com

Contributors:

  • Alain Frisch

  • Sebastien Briais

Dependencies (3)

  1. js_of_ocaml-compiler >= "4.0.0"
  2. ocaml >= "4.08"
  3. dune >= "2.7"

Dev Dependencies (1)

  1. odoc with-doc

Used by (2)

  1. gen_js_api >= "1.0.7" & < "1.1.0" | >= "1.1.2"
  2. vdom

Conflicts

None