Bonsai_term: A library for building dynamic terminal apps by Jane Street(github.com)
github.com
Bonsai_term: A library for building dynamic terminal apps by Jane Street
https://github.com/janestreet/bonsai_term
12 comments
I too, would like tosee screenshots.
I have not heard of bonsai_web before.
Could you feasibly use this to build both web apps and TUI apps simultaneously? If this is the case, I find this extremely interesting. The examples look well fleshed out and interesting.
OCAML seems like a perfect language to accomplish this. Ocsigen is pretty complex, but also seems wildly ahead of its time. PPX is a wonderful metaprogramming paradigm and I would love to know how this is being used in production
I have not heard of bonsai_web before.
Could you feasibly use this to build both web apps and TUI apps simultaneously? If this is the case, I find this extremely interesting. The examples look well fleshed out and interesting.
OCAML seems like a perfect language to accomplish this. Ocsigen is pretty complex, but also seems wildly ahead of its time. PPX is a wonderful metaprogramming paradigm and I would love to know how this is being used in production
Nearby, ghostty-web has a wasm build. Probably not inconceivable to spin a more general wasm build too. https://github.com/coder/ghostty-web https://news.ycombinator.com/item?id=46060087
An OCaml library*
Seems redundant; the title already includes "Jane Street."
Quite amusing how they've become known as that-firm-using-OCaml.
README could use more work. Zero images, demos, etc. - why put all the effort into a tool just to market it so poorly...
Probably because they wrote the tool for internal use and don't care whether you start using it.
No screenshots or videos?
[deleted]
The underlying library [Incremental][0] [is ported][1] though currently unused; the "ported" framework itself doesn't yet include any Bonsai magic, but the terminal-side stuff is [Zoomies][2], in which [this is broadly what it looks like][3] to write a VDOM (scroll down to line 100 to see how to process user interaction, and line 150 to see how that VDOM renders). All very incomplete and with a big long list of features to add, and the current design is not flexible enough yet to accommodate the "table" primitive, but we're slowly getting there.
[0]: https://github.com/janestreet/incremental/
[1]: https://github.com/Smaug123/WoofWare.Incremental/
[2]: https://github.com/Smaug123/WoofWare.Zoomies
[3]: https://github.com/Smaug123/WoofWare.Zoomies/blob/15bf1875ed...