Skip to content

mum-rs/mum

Repository files navigation

mum

Mumble daemon with controller (think mpd(1)/mpc(1)) written in Rust.

Building

mum is currently only tested on Linux. Windows is planned to use a REPL. macOS should work as-is.

Requirements (package names are for Arch Linux):

  • rust (stable, current minimum version is 1.56)
  • alsa-lib
  • openssl
  • opus
  • libnotify (optional, needed in default configuration)

Build and install the latest published version:

$ cargo install mum-cli

You can also build and install from source, for example with

$ cargo install --git https://github.com/mum-rs/mum.git

or using the AUR package.

Optional features

mum contains optional features that are enabled by default. To compile without them, build with --no-default-features. Features can then be re-enabled separately with --features "FEATURES".

The following features can be specified:

Name Needed for
mum/notifications Notifications
mum/ogg ogg sound effects

Manpages

Manpages are included as both asciidoc txt-files and already formatted groff-files. They are generated by

$ asciidoctor -b manpage mumctl.txt
$ asciidoctor -b manpage mumd.txt
$ asciidoctor -b manpage mumdrc.txt

Basic Usage

This describes how to connect to a server and join different channels. See $ mumctl --help or the manpages for more information.

mumd

Start the daemon by running mumd. It attaches to the terminal, so if you want to run it in the background you can detach it from the shell. You could also run it through e.g. systemd.

mumctl

Interfacing with the daemon is done through mumctl. Some examples:

$ mumctl connect 127.0.0.1 spock # connect to 127.0.0.1 with username 'spock'
$ mumctl channel list
ServerRoot
  -user1
  -user2
  -user2
  Channel2
  Channel3
$ mumctl channel connect Channel2

Why?

Mostly because it was a fun way of learning a new language. Also:

  • Most Mumble clients use a GUI. While GUIs aren't necessarily bad, there should at least exist alternatives where possible.
  • Memory, disk and CPU usage. We haven't found a reliable way of testing this yet (suggestions welcome).

Other projects