nvi2
websocat
nvi2 | websocat | |
---|---|---|
5 | 10 | |
139 | 6,511 | |
- | - | |
5.2 | 6.6 | |
7 days ago | 8 days ago | |
C | Rust | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nvi2
-
Ask HN: What was the best software that you used during 2022?
nvi2 [0]: I got to like the simplicity of nvi when installing Void Linux on my laptop, but it had some annoying bugs that made me switch to nvi2. In general, it feels like `good' software; powerful enough by virtue of being a 1:1 vi clone with a few crucial improvements (multibyte, multi-undo, etc.), but simple enough to hack on if I miss some feature. Though no autocomplete means it's not suitable for more verbose languages, like Java.
QuickJS [1]: qjscalc is my go-to scientific calculator, and qjs my go-to JavaScript implementation for simple programs. The C interface is very nice to use, too. All in all, it feels very much like a "complete" engine, even if not quite as fast as one with JIT.
w3m [2]: Somewhat lacking as a web browser, but a very good pager. Would take it over less any day. Also has the best table display of any text-mode browser, supports inline images, and is rather extensible.
Wine [3]: It's gotten so good that I no longer have to dual boot Windows. Still not perfect, but definitely on my list of "good software".
[0]: https://github.com/lichray/nvi2
[1]: https://bellard.org/quickjs/
[2]: https://github.com/tats/w3m
[3]: https://www.winehq.org/
- Is there an editor like emacs, vim, etc. but (solely) used in the BSD world?
-
OpenVi: Portable OpenBSD vi for Unix systems
Don't confuse OpenVi/OpenBSD-vi, nvi1, and nvi2. These are all different programs that share the same heritage.
OpenVi is derived from OpenBSD vi, which derives from nvi version 1.79, released in 1996. There has been 25+ years of independent development as part of the OpenBSD base system and has diverged greatly in that time, with the development going in a different direction.
Nvi1, currently on version 1.8x, is maintained at https://repo.or.cz/nvi.git - I believe the latest version of this editor does have multibyte support, but this is not the OpenVi/OpenBSD version of the editor.
Nvi2 shares heritage as well but also, quite far removed from the original code, is actively maintained at https://github.com/lichray/nvi2 and also includes multibyte support.
(IIRC) the multibyte support in both Nvi1 and Nvi2 derives from nvi-m17n, developed as part of the KAME project by the late itojun - http://www.itojun.org/itojun.html ... the last update to nvi-m17n was about 3 years ago, and is available at https://cgit.freebsd.org/ports/tree/editors/nvi-m17n/files
Currently, optimizing for size using link-time garbage collection with GCC 11.2 on an x86_64 glibc Linux system gives a good idea of the changes over time and the different direction these editors have taken. OpenVi is also simplified in structure and does not have the three levels of abstraction of Nvi 1.8x - there is no library interface layer.
For OpenVi, the compiled binary is 280K, and for Nvi1 (nvi-1.81.6-45-g864873d3) the compiled binary is 528K (36K for vi, 528K for libvi).
OpenVi has a single configuration standard with no dependencies beyond curses.
Nvi1 has many options beyond trace/debug ("widechar" "gtk" "motif" "threads" "perl" "tcl" "db3/4" "internal-re") - so at least 255 different build variations are possible.
(I've not yet built Nvi2 myself on Linux so I can provide an actually fair comparison yet, but I will, and I'll summarize the data in an FAQ section of the README)
Nvi1 (https://repo.or.cz/nvi.git) looks like:
websocat
-
Show HN: ScaleSocket – Turn any script into a multiplayer WebSocket server
It's similar to running netcat in server mode, wrapping a script. It's even closer to doing that using websocat [1], whereby one does not have to do the websocket header juggling.
The main difference is that while netcat or websocat will spawn a new process for each connecting client, ScaleSocket has a concept of rooms (channels). For a room, a process is spawned once only. All clients connecting to the same room are routed to the same process. This is not straight forward to do using the forementioned tools.
There's a small comparison page [2] where I have mentioned some alternative tools.
[1] https://github.com/vi/websocat
-
Ask HN: What was the best software that you used during 2022?
one combination I came to really love this year is babashka (https://github.com/babashka/babashka) + websocat (https://github.com/vi/websocat). I wrote about a method of live web programming with this pair at https://github.com/whacked/cow/blob/main/a%20technique%20for...
babashka isn't strictly necessary; you can also pipe plain text, but pushing hiccup expressions to the browser DOM from the REPL with instant feedback has opened a new world of interactive programming for me.
- GoLogin and python/selenium
- WebSockets in Curl
- Vi/websocat: Command-line client for WebSocket like netcat or curl
-
Realtime web-based MUD monitoring and control in tintin++ and mudlet
No... the core of it is a django instance in the cloud with a Vue front end (what you're seeing in the screen shot). To push data in, the client connects to a websocket (using https://github.com/vi/websocat) and push key/value pairs in. I'm not in the middle of gameplay at all.
- One Liner for streaming events from one relay to another
-
Testing the Async Cloud with AWS CDK
There's really nothing to this. I just have to provide the bus name and an optional pattern. Now using websocat, I get output like this:
- Netcat – All you need to know
-
Exploring the methods of looking into Ethereum’s transaction pool
Subscriptions is real-time streaming of data from server to client through WebSocket. You will need a constantly active connection to stream such events. You cannot use curl for this and have to use a WebSocket client like websocat if you want to access it via command line. Once executed, a stream of pending transaction IDs will start flowing in.
What are some alternatives?
OpenVi - OpenVi: Portable OpenBSD vi for UNIX systems
hurl - Hurl, run and test HTTP requests with plain text.
nextvi - Next version of neatvi (a small vi/ex editor) for editing bidirectional UTF-8 text
websocketd - Turn any program that uses STDIN/STDOUT into a WebSocket server. Like inetd, but for WebSockets.
heirloom-ex-vi - The Traditional Vi (vi with many enhancements from Gunnar Ritter)
web3.py - A python interface for interacting with the Ethereum blockchain and ecosystem.
src - Read-only git conversion of OpenBSD's official CVS src repository. Pull requests not accepted - send diffs to the tech@ mailing list.
cdk-eventbridge-socket - CDK construct that creates a WebSocket endpoint for you for any EventBridge rule you are interested in. (Built for debugging + testing )
oed - Portable OpenBSD ed(1) editor.
warp-cors - warp-cors is a proxy server which enables CORS for the proxied request
Windows Terminal - The new Windows Terminal and the original Windows console host, all in the same place!
sls-test-tools - Custom Jest Assertions for Serverless integration testing.