TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Revery – Native, high-performance, cross-platform desktop apps

350 pointsby stockkidover 6 years ago

21 comments

hutattedonmyarmover 6 years ago
&gt; Revery is the same - aside from platform-specific behavior, if your app looks or behaves differently on another platform, that&#x27;s a bug!<p>I want my applications to feel like they belong to the platform and <i>not</i> identical on every platform
评论 #18996438 未加载
评论 #18996592 未加载
评论 #18998589 未加载
评论 #18996453 未加载
评论 #18997014 未加载
评论 #18998115 未加载
评论 #18997102 未加载
评论 #18996432 未加载
评论 #18998710 未加载
评论 #18998953 未加载
评论 #18999556 未加载
评论 #19002542 未加载
评论 #18999521 未加载
评论 #19006502 未加载
评论 #18997030 未加载
评论 #18998749 未加载
评论 #18996356 未加载
评论 #18997406 未加载
scooprover 6 years ago
Well the example application seemed fairly solid, well worthy of a screenshot. I would like something like this for some simpler custom tools every now and then.<p>It does seem to exhibit the usual custom rendered app issues. I suppose it is constantly redrawing the screen, as it seems to have constant cpu usage even when doing nothing, so not laptop friendly (though perhaps fixable still).<p>Some of the widget seem fairly arcane but usable. No keyboard control that I could find. Screens that needed to scroll didn&#x27;t. Text input is custom, so that will be a source of frustration for many for a long time (lack of cursor control, IME, etc.), likely fine for internal tools for a while.<p>One thing that was very alien to me was the build tooling and language&#x2F;runtime. It was easy enough to run the example per the readme instructions, but it is quite hidden what kind is the end product. I eventually found an actual executable of around 4MB (3.3MB stripped), but I&#x27;m not quite sure how self-contained that is. Also how easy would it be to link C&#x2F;Rust lib, so that revery would only be used as the UI layer for something else.
评论 #18999152 未加载
评论 #19002265 未加载
saagarjhaover 6 years ago
&gt; As a consequence, Revery is like flutter in that it does not use native widgets.<p>This puts a step above Electron, but one below wxWidgets in my hierarchy of cross-platform desktop frameworks. It really annoys me when frameworks pretend they are &quot;native&quot; (to separate themselves from Electron) but don&#x27;t actually use native widgets. Sure, you might be getting a performance gain, but you&#x27;re still losing on platform-specific behavior.
评论 #18998394 未加载
swalladgeover 6 years ago
The more I hear about Reasonml the more it intrigues me. This project is obviously in early stages, but it appears to have found a combination of parts from the ocaml and web development ecosystems that just might work well. All the best!
评论 #18996325 未加载
评论 #18997090 未加载
egnehotsover 6 years ago
Every GUI library should have some screenshots..
评论 #18995871 未加载
评论 #18996604 未加载
symlinkkover 6 years ago
The developers behind Oni (a text editor inspired by Vim and VSCode) are rewriting it in this framework:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;onivim&#x2F;oni2" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;onivim&#x2F;oni2</a>
评论 #18996212 未加载
评论 #18996304 未加载
alkonautover 6 years ago
This would be fantastic for VST (Audio workstation plugins) that must be lean on resources, cross platform, and very rarely want a native UI anyway.
aasasdover 6 years ago
I doubt that it&#x27;s feasible to reimplement GUI widgets. They require tons of micro behaviors. Revery will need to implement not just the looks, but also input, with a bunch of different devices in various configurations―which means lots of possible combinations and interactions between the elements.<p>Since Revery doesn&#x27;t use native widgets, it will lose all advanced native features―e.g. nuances of input handling, and automation―or will have to reimplement them one by one on the low level, polluting the code with native paradigms from each platform.<p>Browsers and GUI toolkits spent decades on this, and still they lag behind, as evidenced by QT&#x27;s non-support of keyboard remapping on MacOS (i.e. sane “home” and “end”).
评论 #18998650 未加载
评论 #18998651 未加载
zengidover 6 years ago
Say what you will but electron being &quot;terrible&quot; has been a great thing for advancing the state of cross platform gui!
评论 #18997717 未加载
bryanpheover 6 years ago
Hey HN! I&#x27;m Bryan, creator of Revery. I was really surprised when I saw Revery on the front-page of HN, so cool!<p>I apologize that there isn&#x27;t more info - we&#x27;re still working on website, docs, architecture diagrams, etc. But I&#x27;ll be around for a bit to answer questions. It&#x27;s still pretty new and actively developed - we&#x27;re building it in parallel with the next version of our Oni [1] text editor. Some of the rationale for this decision can be found in our early architecture document for the next version of Oni [2].<p>ReasonML (which is a syntax over OCaml) is now a great environment to build native apps. Most of the attention has been focused on the compile-to-JS scenarios, but the tooling is at the point where you can just as easily compile-to-native on the major platforms, thanks to tools like Esy [3] - workflow isn&#x27;t much different from NPM+JS development!<p>Jordan and team, as well as OCamlLabs on the OCaml side, have been smoothing out this native workflow (it&#x27;s not easy to build a package manager for native code!), and I think&#x2F;hope you&#x27;ll see more ReasonML projects like Revery start to pop-up.<p>I&#x27;m bullish on this because React-as-a-paradigm (pure-functional UI) is a natural fit - it&#x27;s like a language designed for React.<p>Not only that, there is some incredible work that has been invested in the OCaml ecosystem, too:<p>- The compiler is FAST<p>- The GC is FAST (also deterministic and supports sliced collections, important for perf)<p>- Very powerful type system (ADTs, GADTs) - we even express the React &#x27;rules of hooks&#x27; in types, such that they&#x27;re enforced in the compiler.<p>The output code generated by the OCaml compiler (ocamlopt) is fast too - in some cases on par with C++ [4]<p>Everything seemed to line up in terms of tech to make it a natural fit for us to give it a try :)<p>And Revery is meant for very custom UIs - there is a counterpart project called Brisk [5] that uses platform-native widgets. We share common infrastructure and in fact uses Brisk&#x27;s reconciler to provide the &#x27;React&#x27; layer and component model.<p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;onivim&#x2F;oni" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;onivim&#x2F;oni</a><p>[2] <a href="https:&#x2F;&#x2F;gist.github.com&#x2F;bryphe&#x2F;ca3260914818a1293864e9fa6422a69c" rel="nofollow">https:&#x2F;&#x2F;gist.github.com&#x2F;bryphe&#x2F;ca3260914818a1293864e9fa6422a...</a><p>[3] <a href="https:&#x2F;&#x2F;esy.sh&#x2F;" rel="nofollow">https:&#x2F;&#x2F;esy.sh&#x2F;</a><p>[4] <a href="http:&#x2F;&#x2F;www.ffconsultancy.com&#x2F;languages&#x2F;ray_tracer&#x2F;comparison.html" rel="nofollow">http:&#x2F;&#x2F;www.ffconsultancy.com&#x2F;languages&#x2F;ray_tracer&#x2F;comparison...</a><p>[5] <a href="https:&#x2F;&#x2F;github.com&#x2F;briskml&#x2F;brisk" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;briskml&#x2F;brisk</a>
continuationsover 6 years ago
If I built a web app with Reason can I reuse the code and turn it into a desktop app using Revery?
评论 #18999639 未加载
评论 #18996244 未加载
评论 #18998331 未加载
PeOeover 6 years ago
Has anyone here actually tried using it? I&#x27;d be interested to hear a comparison between Revery and Electron in terms of ease of use, performance, drawbacks etc. I read through the README but tbh I&#x27;d prefer an external opinion.
评论 #18997683 未加载
roboguy12over 6 years ago
If anyone is interested in a similar idea, but using javascript (or React), this reminded me of a project I heard of a while ago: <a href="https:&#x2F;&#x2F;github.com&#x2F;parro-it&#x2F;libui-node" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;parro-it&#x2F;libui-node</a>. It&#x27;s built on top of <a href="https:&#x2F;&#x2F;github.com&#x2F;andlabs&#x2F;libui" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;andlabs&#x2F;libui</a>, &quot;a portable GUI library for C&quot; and it powers a truly native React Native for desktop: <a href="https:&#x2F;&#x2F;github.com&#x2F;kusti8&#x2F;proton-native" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;kusti8&#x2F;proton-native</a>.<p>Disclaimer, I&#x27;ve only ever dabbled in these projects and cannot attest to the quality, package size, speed, etc. Just figured I&#x27;d share
nurettinover 6 years ago
&gt;&gt; Revery is like flutter in that it does not use native widgets<p>The word native is pretty overloaded these days. According to this article, native means using react-native in their browser page. And their browser is somehow fast.
评论 #18998304 未加载
simplifyover 6 years ago
Is this targeting the same space as Flutter? That&#x27;s an enormous amount of work, and can&#x27;t imagine it being done without a Google-scale level of resources (I&#x27;d be happy to be proven wrong, though!).
评论 #18999875 未加载
Jyaifover 6 years ago
So it&#x27;s Flutter, but with ReasonML&#x2F;OCaml instead of Dart.
评论 #18997690 未加载
评论 #18998320 未加载
jonathanstrangeover 6 years ago
Size of executables?
评论 #18998928 未加载
评论 #18998345 未加载
chasd00over 6 years ago
did all of this spawn from Phonegap? I remember when Phonegap first came out, it was a clever thing but rough around the edges. I used it when chasing the cross-platform mobile app dream with some success.<p>Then Apache picked it up as Cordova and the Ionic framework really helped to show what could be done with it. Ionic has come a long way and I&#x27;m, today, finishing up a client mobile project using that framework.<p>A while back I recommended Electron to a colleague who was tasked with implementing an old java applet as a stand alone application (we&#x27;re all web developers) and it really saved him a lot of grief (client was happy with the price tag too).<p>To me, Electron is Phonegap for the Desktop. Is that how this all came about?
评论 #18999009 未加载
ac130kzover 6 years ago
The same problem - Javascript.
评论 #18996957 未加载
评论 #18996911 未加载
评论 #18997555 未加载
评论 #18996875 未加载
holografixover 6 years ago
Sorry but I won’t learn Reasonml in order to use this.
lm2sover 6 years ago
Native? High-performance? Using Electron?! Something isn&#x27;t right.
评论 #18999166 未加载
评论 #18996799 未加载