Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: "Daniel Bünzli" <daniel.buenzli@erratique.ch>
To: caml-list@inria.fr
Subject: [Caml-list] [ANN] Brr 0.0.1, a toolkit for programming browsers
Date: Wed, 14 Oct 2020 14:23:00 +0200	[thread overview]
Message-ID: <etPan.5f86eda9.75f27dde.530c@erratique.ch> (raw)

Hello,

I'd like to announce the first release of Brr. 

The TL; DR is: if you are looking for a productive way to program browsers 
with js_of_ocaml but without ppx and ghost OCaml objects, give Brr a try.

The details:

  Brr is a toolkit for programming browsers in OCaml with the
  [`js_of_ocaml`][jsoo] compiler. It provides:

  * Interfaces to a selection of browser APIs.
  * Note based reactive support (optional and experimental).
  * An OCaml console developer tool for live interaction 
    with programs running in web pages.
  * A JavaScript FFI for idiomatic OCaml programming.

  Brr is distributed under the ISC license. It depends on [Note][note]
  and on the `js_of_ocaml` compiler and runtime – but not on its
  libraries or syntax extension.

Homepage: https://erratique.ch/software/brr 
API Docs & manuals: https://erratique.ch/software/brr/doc/ or `odig doc brr`
Browser API coverage: https://erratique.ch/software/brr/doc/index.html#supported_apis
Install: opam install brr 

Brr is essentially what I need to be productive for browser programming with 
js_of_ocaml: an obvious FFI with JavaScript objects as abstract data 
types without OCaml object phantom types and binding documentation 
precisely linking into MDN.

The OCaml console is the hack on the cake. In the past I often found it frustrating to 
have OCaml programs running in my webpages and be greeted with a JavaScript 
prompt in the browser dev tools. Quite a bit of polishing could be done on that 
though. Some of which should likely directly be done upstream in the toplevel 
machinery (e.g. identifier completion, a better toploop API and support for easy pretty 
printer installation). It would also be nice if we could cut down on  `js_of_ocaml`'s 
toplevel compilation times ;-)

Parts of Brr have been seriously dogfooded in the past but that new incarnation is 
largely untested for now and certain APIs might need adjustements. Early 
adopters should study actual binding coverage and expect glitches or little breakages 
in the future. 

The Note reactive functionality was also seriously used in the past but Note itself needs
a new design round and I don't have the ressources to do it right now, expect breakage, 
don't pay too much attention to it for now.

My thanks to the js_of_ocaml developers for the nice ocaml to javascript compiler and a 
special shootout to Hugo Heuzard for not getting mad at me when pinging him directly 
for questions.

Happy browser compatibility bug hunting, 

Daniel

[note]: https://erratique.ch/software/note
[jsoo]: https://ocsigen.org/js_of_ocaml






                 reply	other threads:[~2020-10-14 12:23 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=etPan.5f86eda9.75f27dde.530c@erratique.ch \
    --to=daniel.buenzli@erratique.ch \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox