Skip to content

v0.4.2

Choose a tag to compare

@Gaubee Gaubee released this 06 Sep 08:04
· 213 commits to main since this release

Current release of the opendweb CLI and the dweb application-level networking stack. This is the first GitHub Release on this repository — it documents the published state of all npm packages; automated release notes (.github/workflows/release.yml) take over from the next tag.

npm packages (published versions)

npm package version role
opendweb 0.4.2 Server CLI — npx opendweb server starts the self-hosted gateway (8787) + relay (3340); plugin marketplace host
@jixo/opendweb-server-binary 0.3.2 Server binary wrapper used by the CLI; also exposes a programmatic startServer()
@jixo/opendweb-client-sdk 0.3.2 Node SDK for embedding fabrics in your own app (napi-rs; darwin-arm64 / win32-x64)
@jixo/opendweb-example 0.3.2 Reference two-process client CLI (init / invite / join / chat)
@jixo/opendweb-config 0.1.0 definePlugin helper for local plugin files (runtime-agnostic: deno / bun / node)
@jixo/opendweb-ext-cf 1.0.3 Cloudflare Tunnel plugin: ingress push via API, DNS routing, end-to-end verification, optional cloudflared co-spawn

Windows artifacts (dweb-server exe + napi dll) are built fresh by the tag workflow (mingw cross-compilation) and ship inside the npm tarballs — no separate download needed.

What this stack does

Multi-device applications form logical networks — like game rooms, not a system-level VPN:

  • Identity — Ed25519 EndpointId: stable identity decoupled from network addresses (z-base-32 display form)
  • Roster — signed facts (Genesis/Grant/Join/Revoke), content-addressed (BLAKE3), union-merge convergence; controlled, invite-based joins (issuer-online single redemption: challenge-response PoP + invite_id CAS consumption)
  • Session — iroh 1.1: QUIC direct + NAT traversal, self-hostable relay fallback; dual ALPN (regular/redeem); gating on both sides (gate before data); per-frame resource caps
  • Sync — opaque envelopes, bidirectional (Automerge adapter planned as a separate change)

Highlights of the 0.4.x line

  • opendweb@0.4.2 (tag v1.0.1-cli content): plugin installs pin @latest explicitly — an ancestor-directory package.json with a stale dependency range can no longer hijack version resolution
  • @jixo/opendweb-ext-cf 1.0 (tags v1.0.0-cf … v1.0.3-cf): discovery-driven rewrite — browser login / one API token, SDK-backed control plane, managed cloudflared, whole-block/single-entry token paste UX; Codex-reviewed remediation round (SDK leaf imports, config-merge PUT, OAuth persistence contract, install-path and race fixes); v0.4.0 split connector vs management credentials (live 401 fix)

Upgrade

npx opendweb@0.4.2 server          # or: npm i -g opendweb@0.4.2
npm i @jixo/opendweb-client-sdk@0.3.2   # Node SDK

Docker

docker run -d -p 8787:8787 -p 3340:3340 ghcr.io/jixoai/opendweb:0.4.2

ghcr.io/jixoai/opendweb is the image home: v0.4.2 originally shipped from the pre-rename namespace ghcr.io/gaubee/dweb, and every historical tag has since been migrated there (digests unchanged). The old location still resolves, but point pulls at the new one.

Verify a running server

curl http://localhost:8787/healthz         # -> 200
curl http://localhost:8787/services.json   # -> service manifest (relay auto-discovery)

End-to-end regression manual: EXAMPLE.md (中文版).