At this point I very much question that handwritten assembly can be more performant than what LLVM-based langs can produce at the highest optimization settings. Compilers are very good at optimization
Particularly when the "handwritten" code in question is vibecoded, like this is
LLVM is bounded by what its IR can express, and what it can express is constrained by what is portable and what it can prove. There is a reason `ffmpeg`, OpenSSL, OpenBLAS, glibc's string routines, LuaJIT's interpreter, etc. all still leverage hand-written assembly.
As for the editor, even if it isn't necessarily optimal assembly (I have no clue), a reduced feature set and relying on OS APIs instead of frameworks will still probably result in something which feels faster than Electron programs like VSCode.
It should be more performant if actually handwritten I guess. But just lowering the implementation like this will make it faster than many other apps seemingly for free, but not having the abstractions from e.g. C or C++ will likely make it unmaintainable long term.
There are some good numbers in comments to respond the question. Think of rhun as of anti-vscode: feature-poor, configuration-lacking, but small and fast :-)
This is amazing. I think that the binary itself is just 980kb, which is such a fresh breath of air. I think that I am fairly impressed by the project!
Some few features that I would love to have for myself is if it can support remote development similar to zed[0] using ssh
and if possibly, LSP support can be added.
I also think that this project can be used as the base support for many things and not just an editor as initial inspiration (sort of as a way to bootstrap a way to create extremely minimalist applications with themes and everything!)
I wish luck to the project and I might even start to daily drive it, there are many ideas that I can think of which I wish to add on top of it (I wish to create a scratch-pad app which can automatically save the files and I wouldn't have to prompt it), I had built it in Odin[1] but I feel like writing it on top of rhun might be easier as well
or a markdown editor similar to a more barebones version of obsidian/notion also come to my mind (If you are interested, please, do create something like this. QTmarkdown is one of the more minimalist things that I use but nearly all of these aren't really as minimalist as I would want them to and I think that rhun can help in it.)
Thanks once again and have a nice day! Man, do I love hackernews for these type of creative projects :-D
Thank you very much. Great ideas. LSP support was (and likely still is) planned via a plugin system, which is already a part of rhun. I'm trying to be really careful with feature creep and load time, so I postponed some features to stabilize the codebase and gather user feedback first.
Edit: I have built rhunpad[0], its slightly built for myself
Now, I was having some issues with LLM not able to really work with the native file manager capability [I would say that this probably happened because I wanted there to be two types of system, debug and prod, where debug asked for folder everytime in scratchpad so that I can test it behaviour and prod only asked once]
And I try to write the prompt and pass it through a middle layer like chatgpt to then pass it onto the final layer and it seems that it preferred the macOS file picker in that sense
but finally I have created the project, I think that it was a really pushing the limits vibe-coding project but quite impressed nonetheless that an open weights model was still able to do these edits, there are some other issues as well but I think that this was just created by me for myself to write thoughts in a scratchpad like way.
I will be waiting for a v1 release or a stable release/the plugin system that you are mentioning for a more proper release as well but just wanted to let you know that I built it on top of your project and I think that there are just so many more ideas that I can think of if someone really wants to test the limits of LLM's while getting something decent. Creating a monkeytype alternative comes in my mind as well
(I did use the word rhunpad, I hope that it can be okay and if not then I am more than happy to change the name as well!)
Anyways, I'd be curious as to what you think of it and as always have a nice day and take care!
Yup, I had left the agent (GLM 5.3 on maki) to work on creating rhunpad and I must say that its unwieldy for the model to handle the codebase although I guess it is still able to work though but definitely testing the limits of the model in terms of making it overthink substantially more.
I would really like a plugin system which can make the codebase more easier to wield for these custom use-cases. Atom created Electron for their editor which then made literally everything use a browser for a native app, I can imagine that perhaps a similar yet hopefully more minimalist primitives can be provided by a strong plugin system to help other people make easier (side-editors?), plus points for using that for LSP purposes as well, also good point on preventing future bloat, I think that the future looks good provided that the codebase becomes managable for AI to use as its definitely testing the limits of AI in some sense imo which is strangely why I am even more curious as to how this project pans out as well and in terms of how it maintains the software/source code.
Honestly, it runs and looks incredible (macOS). Very well done. Would love to have support for pi-agent, as is my go-to for most uses I have. Congratulations!
…is it fast? Why assembly? Impressive, regardless!
“Super responsive, minimal-by-default” is kinda already met by Sublime Text, but it’s certainly not in assembly lol. And not OSS — thanks for sharing your work with the world :)
It's very difficult to call Sublime minimal, but for years that was my go to as well. rhun is OSS, no telemetry, free and is lacking dozens of "normal code editor" features compared to Sublime. Which is kinda the point. nano+ with GUI.
- now imagine building entire systems tailored to each OS in just assembly
- imagine the next gen browser built in only assembly with a browser engine made in assembly
- imagine photoshop, illustrator, movie maker built ground up in assembly
- imagine an entire windows 12 operating system made in pure assembly
- the performance profile of each of the above must be absolutely wild
- since i am an an absolute newbie at assembly at this point, a sincere question to the some of the more englightened ones reading this, how and where do you recommend I learn assembly? I understand its different for x86 x64 and ARM? where should I start?
It occurs to me that in this era of RAM hardware shortage, resource-frugal applications like this one could become more prevalent.
Anyway I guess we'll see if that happens.
Edit: Downloaded, running under Windows.
Impressive. Loads fast, looks pretty polished. Highlighting for many languages included "obscure" ones that I sometimes use.
Mem used: 7.9MB (gvim 12.2MB, emacs 35.5MB, vscodium 291.1MB)
Particularly when the "handwritten" code in question is vibecoded, like this is
As for the editor, even if it isn't necessarily optimal assembly (I have no clue), a reduced feature set and relying on OS APIs instead of frameworks will still probably result in something which feels faster than Electron programs like VSCode.
Also, “For Apple silicon, a build-time translator converts that core to AArch64” likely doesn’t help the quality of the ARM code.
Some few features that I would love to have for myself is if it can support remote development similar to zed[0] using ssh
and if possibly, LSP support can be added.
I also think that this project can be used as the base support for many things and not just an editor as initial inspiration (sort of as a way to bootstrap a way to create extremely minimalist applications with themes and everything!)
I wish luck to the project and I might even start to daily drive it, there are many ideas that I can think of which I wish to add on top of it (I wish to create a scratch-pad app which can automatically save the files and I wouldn't have to prompt it), I had built it in Odin[1] but I feel like writing it on top of rhun might be easier as well
or a markdown editor similar to a more barebones version of obsidian/notion also come to my mind (If you are interested, please, do create something like this. QTmarkdown is one of the more minimalist things that I use but nearly all of these aren't really as minimalist as I would want them to and I think that rhun can help in it.)
Thanks once again and have a nice day! Man, do I love hackernews for these type of creative projects :-D
[0]: https://zed.dev/docs/remote-development
[1]: https://github.com/SerJaimeLannister/odinpad
Now, I was having some issues with LLM not able to really work with the native file manager capability [I would say that this probably happened because I wanted there to be two types of system, debug and prod, where debug asked for folder everytime in scratchpad so that I can test it behaviour and prod only asked once]
And I try to write the prompt and pass it through a middle layer like chatgpt to then pass it onto the final layer and it seems that it preferred the macOS file picker in that sense
but finally I have created the project, I think that it was a really pushing the limits vibe-coding project but quite impressed nonetheless that an open weights model was still able to do these edits, there are some other issues as well but I think that this was just created by me for myself to write thoughts in a scratchpad like way.
I will be waiting for a v1 release or a stable release/the plugin system that you are mentioning for a more proper release as well but just wanted to let you know that I built it on top of your project and I think that there are just so many more ideas that I can think of if someone really wants to test the limits of LLM's while getting something decent. Creating a monkeytype alternative comes in my mind as well
(I did use the word rhunpad, I hope that it can be okay and if not then I am more than happy to change the name as well!)
Anyways, I'd be curious as to what you think of it and as always have a nice day and take care!
[0]: https://github.com/SerJaimeLannister/rhunpad
I would really like a plugin system which can make the codebase more easier to wield for these custom use-cases. Atom created Electron for their editor which then made literally everything use a browser for a native app, I can imagine that perhaps a similar yet hopefully more minimalist primitives can be provided by a strong plugin system to help other people make easier (side-editors?), plus points for using that for LSP purposes as well, also good point on preventing future bloat, I think that the future looks good provided that the codebase becomes managable for AI to use as its definitely testing the limits of AI in some sense imo which is strangely why I am even more curious as to how this project pans out as well and in terms of how it maintains the software/source code.
“Super responsive, minimal-by-default” is kinda already met by Sublime Text, but it’s certainly not in assembly lol. And not OSS — thanks for sharing your work with the world :)
Obv not as polished but still cool.
- imagine the next gen browser built in only assembly with a browser engine made in assembly
- imagine photoshop, illustrator, movie maker built ground up in assembly
- imagine an entire windows 12 operating system made in pure assembly
- the performance profile of each of the above must be absolutely wild
- since i am an an absolute newbie at assembly at this point, a sincere question to the some of the more englightened ones reading this, how and where do you recommend I learn assembly? I understand its different for x86 x64 and ARM? where should I start?
BIG TEXT.
COLORED BIG TEXT.
Medium-sized text.
Coloured download button.