
Show HN: Hyperb – multiplatform browser for hypereffect apps (iroh, HTTP, WASM)
hyperb is a browser for small server-driven applications that put content first. Most apps don't need flashy gradients, rounded corners, or piles of hard-to-maintain client-side JavaScript, and few are worth a dedicated…
以下正文同步自 Hacker News 最新,版权归原站所有,已转换为易读排版。
What is it, and why should I care?
hyperb is a browser for small server-driven applications that put content first. Most apps don't need flashy gradients, rounded corners, or piles of hard-to-maintain client-side JavaScript, and few are worth a dedicated native app. With hyperb, the server sends a basic layout of components along with their data. A visually neutral client renders it, collects the user's input, and sends it back to the server.
It's ideal for server admin dashboards, remote controls for hardware devices, interfacing with a sandboxed WASM module, and for simple form-driven apps where content matters more than appearance: a food ordering service, a club enrollment status page, or a shipping monitor.
hyperb opens hyperb:// addresses, which can be served over HTTP or iroh, or can point to (local or HTTP) paths to WASM modules.
Applications are servers that send metadata, element, or signal messages. These modify the basic layout and local state of the components the browser renders. For WASM modules, the server role is played by the sandboxed program running locally.
SPEC.md is a thin layer on top of the hypereffect protocol. There is no client-side computation, and the browser defines one homogeneous style. The server provides only the layout skeleton and the basic behavior of the elements, and the client's only way to communicate with the server is by sending action messages. In the case of WASM modules they are executed locally inside the hyperb app, but play the role of a server.
The demo apps are WASM modules (crates/demoapps), hosted at hyperb://hypereffect.github.io/hyperb/apps/<app>.wasm. Some of these can actually be useful in practice, others are just demos with fake data. Either way because they don't interact with real servers, but only with a WASM sandbox, they don't represent the true powers of hyperb, only a small part of it.
The links below open the demo apps in the web renderer instance, but the same URLs can be open in the desktop, Android or TUI renderers.
Grab the files from the latest release, or use the commands below, which all download the latest one.
Manually: download the windows-x64-setup- .exe from the releases page and run it. It adds a Start menu entry and an uninstaller and registers the hyperb:// and web+hyperb:// links.
One-liner (PowerShell), does the same: downloads the installer and runs it.
$u=(irm https://api.github.com/repos/hypereffect/hyperb/releases/latest).assets.browser_download_url -match 'windows-x64-setup-v'; iwr $u -OutFile $env:TEMP\hyperb-setup.exe; Start-Process $env:TEMP\hyperb-setup.exe
No installer (PowerShell): downloads the .zip, unzips it to %LOCALAPPDATA%\hyperb and you start it with hyperb.bat. No Start menu entry and no hyperb:// links.
$u=((irm https://api.github.com/repos/hypereffect/hyperb/releases/latest).assets.browser_download_url -match 'windows-x64-v.*.zip$')[0]; iwr $u -OutFile $env:TEMP\hyperb.zip; Expand-Archive -Force $env:TEMP\hyperb.zip $env:LOCALAPPDATA\hyperb; & $env:LOCALAPPDATA\hyperb\hyperb.bat
Linux Flatpak (any distro), .flatpak, installs it for your user:
curl -fL "$(curl -s https://api.github.com/repos/hypereffect/hyperb/releases/latest | grep -o 'https://[^"]linux-x86_64[^"].flatpak')" -o /tmp/hyperb.flatpak && flatpak install --user -y /tmp/hyperb.flatpak
Debian / Ubuntu (Debian 13+, Ubuntu 24.04+), .deb:
curl -fL "$(curl -s https://api.github.com/repos/hypereffect/hyperb/releases/latest | grep -o 'https://[^"]linux-amd64[^"].deb')" -o /tmp/hyperb.deb && sudo apt install /tmp/hyperb.deb
Fedora and other RPM distros, .rpm (needs GTK 4.12+):
curl -fL "$(curl -s https://api.github.com/repos/hypereffect/hyperb/releases/latest | grep -o 'https://[^"]linux-x86_64[^"].rpm')" -o /tmp/hyperb.rpm && sudo dnf install /tmp/hyperb.rpm
AppImage, saves it to ~/.local/bin and runs it:
mkdir -p ~/.local/bin && curl -fL "$(curl -s https://api.github.com/repos/hypereffect/hyperb/releases/latest | grep -o 'https://[^"]linux-x86_64[^"].AppImage')" -o ~/.local/bin/hyperb.AppImage && chmod +x ~/.local/bin/hyperb.AppImage && ~/.local/bin/hyperb.AppImage
It needs FUSE (otherwise run it with --appimage-extract-and-run).
Plain binary (.tar.gz), for when you already have GTK 4.12+ installed:
mkdir -p ~/.local/bin && curl -fL "$(curl -s https://api.github.com/repos/hypereffect/hyperb/releases/latest | grep -o 'https://[^"]linux-x86_64[^"].tar.gz')" | tar -xz -C ~/.local/bin hyperb-desktop && ~/.local/bin/hyperb-desktop
From source (see Building from source for the dependencies). This installs the desktop app for your user, with its icon, and makes it the handler of hyperb:// and web+hyperb:// links:
git clone https://github.com/hypereffect/hyperb && cd hyperb && just desktop-install
macOS Apple Silicon only, and the app is unsigned.
Homebrew, installs from the tap and clears the quarantine flag for you:
brew install --cask andunieee/hyperb/hyperb
Manually: download the macos-arm64 .zip, double-click it in Finder to unzip, and drag hyperb.app to Applications. On first launch right-click it and choose Open.
One-liner (Terminal), downloads and unzips it into /Applications. ditto is the archive tool that comes with macOS, and it keeps the app bundle intact where a plain unzip can break it:
curl -fL "$(curl -s https://api.github.com/repos/hypereffect/hyperb/releases/latest | grep -o 'https://[^"]macos-arm64[^"].zip')" -o /tmp/hyperb.zip && ditto -x -k /tmp/hyperb.zip /Applications
If macOS refuses to open it because it is from an unidentified developer, run:
xattr -d com.apple.quarantine /Applications/hyperb.app
Android Builds from source and installs on every device connected through adb (see Building from source):
just android
Web Nothing to install: open https://hypereffect.github.io/hyperb/.
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。