package bonsai
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=43f35d648644492d776bf2c7b86c8227e7793615b6a658432e95f8dccd3631f8
md5=b5e743dbfa64d0da5fd660f14cd0b549
Description
Bonsai is a library for building reusable UI components inside an Incremental-style UI framework such as Incr_dom. The API is broken up into roughly two modules:
- Creating components
- Combining components
Published: 31 May 2020
README
"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
[^incr_dom], 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 theIncremental
monad; in Bonsai, incrementality is added for you under the hood - read moreCombining 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
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 web/examples
.
[^incr_dom]: For interoperability between Bonsai and Incr_dom
, see Using Bonsai Inside Incr_dom. For a short history of Bonsai and Incr_dom
, see History
Dependencies (10)
-
dune
>= "2.0.0"
-
virtual_dom
>= "v0.14" & < "v0.15"
-
ppx_pattern_bind
>= "v0.14" & < "v0.15"
-
ppx_jane
>= "v0.14" & < "v0.15"
-
incremental
>= "v0.14" & < "v0.15"
-
incr_map
>= "v0.14" & < "v0.15"
-
incr_dom
>= "v0.14" & < "v0.15"
-
core_kernel
>= "v0.14" & < "v0.15"
-
async_kernel
>= "v0.14" & < "v0.15"
-
ocaml
>= "4.08.0"
Dev Dependencies
None
Used by
None
Conflicts
None