- Rust 86%
- Lua 13.5%
- Nix 0.2%
- Shell 0.2%
- Python 0.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Bumps [rustls](https://github.com/rustls/rustls) from 0.23.41 to 0.23.42. - [Release notes](https://github.com/rustls/rustls/releases) - [Changelog](https://github.com/rustls/rustls/blob/main/CHANGELOG.md) - [Commits](https://github.com/rustls/rustls/compare/v/0.23.41...v/0.23.42) --- updated-dependencies: - dependency-name: rustls dependency-version: 0.23.42 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
| .cargo | ||
| .github | ||
| .rpm | ||
| crates/pulldown-cmark-blightmud | ||
| resources | ||
| scripts | ||
| src | ||
| tests | ||
| .editorconfig | ||
| .envrc | ||
| .gitignore | ||
| .luarc.json | ||
| .stylua.toml | ||
| build.rs | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| README.md | ||
Blightmud : A mud client for the terminal
Blightmud has been a passion project of mine for some time. A big user of the old but great tinyfugue I always wanted to create my own similar mud client. Even though I don't play much muds these days.
The name?
The client is written in rust. Some navigating throught the thesaurus brought me to the word blight and here we are.
Features
- Completely terminal based (mac and linux)
- Telnet:
- TLS
- GMCP
- MSDP
- MCCP2 (compress2)
- NAWS
- TTYPE
- TELNET CHARSET
- MSSP
- Lua scripting:
- Output and sending
- Aliases
- Triggers
- Timers
- Customizing status bar
- Persistent storage
- Session storage
- Keybindings
- Audio playback (music/ambiance and sound effects)
- Text-To-Speech
- Mouse scrolling
- Plugins
- Sockets (TCP connecting and sending only)
- Spellchecking
- Low resource and fast
- In client help and manuals
- Native Text-To-Speech functionality (optional compile)
- Text searching
- Tab completion
- Split view when scrolling
- Screen reader friendly mode
Demo
Installation
- Ubuntu/Debian : Deb packages can be found on the releases page
- Archlinux/Manjaro : Packages are available on AUR
- NixOS/Nix : Packages are available in NixPkgs, or from our Flake
- Mac/Homebrew : We have a homebrew tap
brew tap Blightmud/blightmud(Apple Silicon / ARM64; if you're on Intel (x86_64) compiling is the best option) - Cargo : If you have rust installed just run
cargo install --git https://github.com/blightmud/blightmud blightmudfrom your favourite terminal. - Other/Alternative : Download source and run
cargo install --path .from the project root - Windows : No native windows support but Blightmud runs fine under WSL
Usage
The following command line options are available when running Blightmud from a terminal:
| Option | Description |
|---|---|
-c, --connect <HOST:PORT> |
Connect to a server on startup |
-t, --tls |
Use TLS when connecting (only applies with --connect) |
-n, --no-verify |
Don't verify the cert for the TLS connection |
-s, --script <PATH> |
Launch using the provided script instead of the defaults |
-T, --tts |
Use the TTS system (only in builds compiled with TTS) |
-w, --world <WORLD> |
Connect to a predefined world |
-r, --reader-mode |
Force screen reader friendly mode |
-V, --verbose |
Enable verbose logging |
--no-update-check |
Skip checking for new Blightmud versions at startup |
--codec <CODEC> |
Specify the codec to use for the MUD (eg. UTF8) |
-v, --version |
Print version information and exit |
-h, --help |
Print the help menu and exit |
The authoritative list for your build is always available by running blightmud --help, and the same reference is available in-client via /help command_line.
Compiling
- Install rust
- Run
cargo buildto compile - Run
cargo runto run
Dependencies include, openssl, alsa-libs and pkg-config
- Ubuntu
apt install pkg-config libssl-dev libasound2-dev libclang-dev(libopenssl-dev on older versions) - Arch
pacman -S pkgconf alsa-lib openssl clang
Compile with text-to-speech
- Install rust
- Run
cargo build --all-featuresto compile - Run
cargo run --all-featuresto run
In order for this to build correctly you will need to install some additional dev dependencies: libclang and libspeechd. Below are some installation commands that might fit your system:
- Ubuntu
apt install libclang-dev libspeechd-dev speech-dispatcher speech-dispatcher-espeak espeak - Arch
pacman -S speech-dispatcher espeak
Compile without spellchecking
Some users may encounter issues building the spellcheck feature on MacOS ARM64 (M1/M2). To
build Blightmud without the spellcheck feature, use --no-default-features. E.g.:
- Install rust
- Run
cargo build --no-default-featuresorcargo build --no-default-features --features text-to-speech - Run
cargo run --no-default-featuresorcargo run --no-default-features --features text-to-speechto run
Compile without audio
If you're running Blightmud on a server or system without ALSA/audio libraries, you can disable audio support to avoid requiring these dependencies:
- Install rust
- Run
cargo build --no-default-features --features spellcheck - Run
cargo run --no-default-features --features spellcheckto run
You can combine with other features as needed:
- With text-to-speech:
cargo build --no-default-features --features spellcheck,text-to-speech - Minimal build (no audio, no spellcheck):
cargo build --no-default-features
Nix
If you're using Nix or NixOS you can try Blightmud right away with:
nix run github:blightmud/blightmud
For developers, once you've cloned this repo you can use the Blightmud flake directly, or with direnv, to have a ready-to-go and self-contained build environment:
- Run
nix buildto build Blightmud without text to speech. - Run
nix build .#blightmud-ttsto build Blightmud with text to speech. - Run
nix developto enter a dev. env. with Rust nightly. - Run
nix develop .#stableto enter a dev. env. with the latest stable Rust.
Support, questions and help
Join our discord post an issue or post a question in discussions
Contributing
All contributions are welcome. Check out contributing guidelines.
Side notes
This is my first rust project that has actually grown a bit. Some things might look silly but thanks to rust they should still be safe. Anywho. If you find some antipattern where you have a better idea I'm more then happy to se the PR and learn some more rustier ways.
