Initial commit: mumh5, a modern Mumble client

Electron desktop app with a Svelte 5 interface for any Mumble server.

- Mumble protocol core: TLS, handshake, channels, users, text, plugin data,
  client-side pacing of Murmur's rate limits
- Voice: WebCodecs Opus over the TCP tunnel, voice activity, push to talk,
  always-on, devices, per-user volume and local mute
- Several servers at once, voice on one; server rail with icons and ordering
- Chat: channels, direct messages, side chat, file sharing through f0ckm,
  inline images without it, click-to-play YouTube
- Profiles with rich descriptions, registration, rename, nicknames,
  connection information and moderation menus
- Identity wizard, multiple identities, PKCS#12 import/export, desktop
  Mumble certificate import, certificate pinning and viewer
- Tray icon with voice state
- Unit, server and end-to-end tests against a real Murmur

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-30 23:28:43 +02:00
co-authored by Claude Opus 5.5
commit 6d29ee1485
85 changed files with 22997 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
import * as esbuild from 'esbuild';
// Bundles the Electron main and preload scripts to CommonJS in dist-electron/.
export const options = {
entryPoints: { main: 'electron/main.ts', preload: 'electron/preload.ts' },
outdir: 'dist-electron',
outExtension: { '.js': '.cjs' },
bundle: true,
platform: 'node',
format: 'cjs',
target: 'node22',
external: ['electron'],
sourcemap: true,
logLevel: 'info'
};
if (import.meta.url === `file://${process.argv[1]}`) await esbuild.build(options);