/bonsai

A library for building dynamic webapps, using Js_of_ocaml

Primary LanguageOCamlMIT LicenseMIT

"Bonsai!"

Bonsai is a library that is used to build browser-based frontend applications in OCaml. It builds on top of the technology and lessons learned from Incr_dom 1, an incremental frontend framework.

The main differences between Incr_dom and Bonsai are

  • Bonsai has a notion of first-class components - read more
  • Incr_dom expects users to program in the Incremental monad; in Bonsai, incrementality is added for you under the hood - read more
  • Combining Bonsai components is easy (and fun!) - read more

Similarities between Incr_dom and Bonsai:

  • Both are built on top of Incremental library for performance optimizations
  • Both make use of the Vdom library and associated helper libraries (lib/vdom_input_widgets, lib/vdom_keyboard, etc..) to help developers construct the view of the app.
  • Bonsai components are embeddable inside of existing Incr_dom apps!

Table of Contents

[This Page]
Bonsai Concepts
A History of Bonsai
Incrementality in Bonsai
Using Bonsai inside an Incr_dom App
Bonsai_web
The Bonsai API

Getting Started

Reading Bonsai Concepts is the best place to get an overview of the library and to build a mental model for structuring Bonsai applications.

Examples of using Bonsai in a web browser can be found in lib/bonsai_web/examples.

For interoperability between Bonsai and Incr_dom, see Using Bonsai Inside Incr_dom. For a short history of Bonsai and Incr_dom, see History

Footnotes