# Oni v2 on Revery?

**URL:** <https://discuss.kakoune.com/t/oni-v2-on-revery/229>\
**Category:** Off Topic\
**Tags:** other-editors\
**Created:** [December 10, 2018, 8:22pm UTC](https://discuss.kakoune.com/t/oni-v2-on-revery/229 "2018-12-10T20:22:18Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Delapouite](https://discuss.kakoune.com/user_avatar/discuss.kakoune.com/delapouite/32/10_2.png) [@Delapouite](https://discuss.kakoune.com/u/Delapouite)\
**Post date:** [December 10, 2018, 8:22pm UTC](https://discuss.kakoune.com/t/oni-v2-on-revery/229/1 "2018-12-10T20:22:18Z")

</div>

Oni is a great GUI on top of neovim: [https://github.com/onivim/oni](https://github.com/onivim/oni)

This project is built on top of the neovim API and adds cool modern elements: keyboard-centric file tree, VCS integration… hard to emulate clearly within the limitation of a cell-based terminal.

The “problem” with the current version is that it’s an Electron app. This platform is sadly famous for its high memory consumption and suboptimal performance in some case. (I personally found that VsCode works decently on recent machine)

So for their future version, the team behind Oni is experimenting with a new rendering engine based on a combo of WebGL and ReasonML. [https://github.com/bryphe/revery](https://github.com/bryphe/revery)

The README on the Revery’s repo explains the motivations better than I could.

I share this project here because it could turn to be a possible candidate to implement a similar Kakoune GUI in the future.

---

<div class="post-metadata">

**Author:** ![andreyorst](https://discuss.kakoune.com/user_avatar/discuss.kakoune.com/andreyorst/32/29_2.png) [@andreyorst](https://discuss.kakoune.com/u/andreyorst)\
**Post date:** [December 11, 2018, 11:03am UTC](https://discuss.kakoune.com/t/oni-v2-on-revery/229/2 "2018-12-11T11:03:25Z")

</div>

> [@Delapouite](#):
>
> This project is built on top of the neovim API and adds cool modern elements: keyboard-centric file tree, VCS integration… hard to emulate clearly within the limitation of a cell-based terminal.

While I liked this project I have serious concerns about it. First is JS plugins. What I love about Emacs, is that 99% of Emacs plugins will work both in GUI and in TUI just right. I understand that Oni is Electron based GUI, and it needs JS for extending interface, but it would be suped great if they could provide a Emacsy way of converting TUI to GUI, like it is done there with completion window. But the plugins should really stay independent thing and work both on Oni and NeoVim (and possibly Vim) which isn’t the case really here.

> [@Delapouite](#):
>
> The “problem” with the current version is that it’s an Electron app. This platform is sadly famous for its high memory consumption and suboptimal performance in some case. (I personally found that VsCode works decently on recent machine)

Both Atom and VSCode hugely improved over the last two years, and now are feeling almost as native apps on semi-modern PCs. Electron is slow, but as slow as any other technology that is based on any kind of interpreter. Emacs is slow too, but still allows great extensibility options with Elisp.

> [@Delapouite](#):
>
> I share this project here because it could turn to be a possible candidate to implement a similar Kakoune GUI in the future.

I’d really like to see a Kakoune GUI to be more like how it is implemented in Emacs, because of the fact that it will work the same in TUI, but I don’t think that there ever will be a modern project that shares same UI paradigm as Emacs. I’m fine with Electron as long as it is just UI, and not entire application.

---

<div class="post-metadata">

**Author:** ![Delapouite](https://discuss.kakoune.com/user_avatar/discuss.kakoune.com/delapouite/32/10_2.png) [@Delapouite](https://discuss.kakoune.com/u/Delapouite)\
**Post date:** [December 12, 2018, 4:31pm UTC](https://discuss.kakoune.com/t/oni-v2-on-revery/229/3 "2018-12-12T16:31:22Z")

</div>

I had a look at OpenGL backend used by recent projects:

- alacritty uses Glutin [https://github.com/tomaka/glutin](https://github.com/tomaka/glutin)
- kitty uses GLFW [https://github.com/kovidgoyal/kitty/tree/master/glfw](https://github.com/kovidgoyal/kitty/tree/master/glfw)
- revery uses reason-glfw [https://github.com/bryphe/reason-glfw](https://github.com/bryphe/reason-glfw)

So they are all related to [https://www.glfw.org](https://www.glfw.org) one way or another.

---

<div class="post-metadata">

**Author:** ![Delapouite](https://discuss.kakoune.com/user_avatar/discuss.kakoune.com/delapouite/32/10_2.png) [@Delapouite](https://discuss.kakoune.com/u/Delapouite)\
**Post date:** [January 9, 2019, 8:08pm UTC](https://discuss.kakoune.com/t/oni-v2-on-revery/229/4 "2019-01-09T20:08:47Z")

</div>

More details on both technical and financial sides [https://gist.github.com/bryphe/ca3260914818a1293864e9fa6422a69c](https://gist.github.com/bryphe/ca3260914818a1293864e9fa6422a69c)
