flashmq(1)

πŸ“¦ version 1.27.3, in nixos 26.05, nixpkgs unstable

πŸ’… flashmq(1) β€” the manual, but make it make sense 🫢

okay so bestie, welcome to flashmq ✨ β€” a fast, light-weight, scalable MQTT server. That's the NAME section btw, and yes it's literally the whole vibe: flashmq β€” A fast light-weight scalable MQTT server. πŸ¦‹


🌸 SYNOPSIS 🌸

flashmq [-c | --config-file config_file_path] | [-t | --test-config] |
        [-h | --help] |
        [-v | --version] |
        [-l | --license]

that's the whole thing, bestie, it's giving "pick one" energy πŸ’…


✨ DESCRIPTION ✨

FlashMQ is an MQTT 3.1, 3.1.1 and 5 broker, designed to be light-weight and to handle millions of clients and/or messages. millions. no cap. πŸ”₯πŸ‘‘


πŸŽ€ SIGNALS πŸŽ€

  • SIGHUP β€” reload the config file and reopen the log files. Listeners get recreated. Bridges are reconnected (when their config has changed), and added or removed as necessary. basically a full glow-up for your running instance ✨
  • SIGUSR1 β€” reopen the log files. use this one for log rotation, iykyk πŸ“
  • SIGUSR2 β€” okay so here's the lore 😭: it has been observed that certain implementations of malloc have a high memory use while still having many free blocks. See for instance the libc mailing list discussion "Abnormal memory usage with glibc 2.31 related to thread cache and trimming strategy" [https://sourceware.org/pipermail/libc-help/2020-September/005457.html]. This can be exacerbated by continuous thread recreation, because of how "memory arenas" are managed. FlashMQ has a fixed number of threads, but that may not be true for loaded plugins. Sending a SIGUSR2 will cause FlashMQ to call malloc_trim(0), possibly resulting in it giving memory back to the operating system. 🧚

the action is mostly pretty fast, but if it's not, the main loop will block during the operation, blocking the ability to accept new connections. the worker threads themselves will keep running and keep serving clients. ⭐

use, or need, of this feature on a regular basis is questionable, but at least it can help in a pinch. πŸ™ˆ

lowkey: SIGUSR2 is a fire-extinguisher, not a daily skincare routine πŸ’€

🌈 COMMAND-LINE ARGUMENTS 🌈

  • --help | -h β€” print help with synopsis 🫢
  • --version | -v β€” print FlashMQ version details πŸ’œ
  • --license | -l β€” print the FlashMQ license πŸ“œ
  • --config-file | -c config_file_path β€” flashmq will read the config file from the given config_file_path.

without this option, the default config_file_path is /etc/flashmq/flashmq.conf. πŸ“

see the flashmq.conf(5) manual page for the format of this file. πŸ‘‘

  • --test-config | -t β€” test the configuration, without starting the daemon. vibe check your config before you commit, bestie ✨

πŸ’– AUTHOR πŸ’–

Wiebe Cazemier <contact@flashmq.org>. 🫢


πŸ¦‹ SEE ALSO πŸ¦‹

man:flashmq.conf(5), https://www.flashmq.org/ πŸ”₯


🧚 COLOPHON 🧚

the sources for the FlashMQ manual pages are maintained in DocBook 5.2 [https://tdg.docbook.org/tdg/5.2/] XML files. the transformation to the multiple destination file formats is done using a bunch of XSLT 1.0 sheets, contributed to this project by Rowan van der Molen. πŸ’…

the groff source of this man-page has ANSI-color support for the terminal. however, Debian-derived Linux distributions turn off groff color support by default. to override this, set the GROFF_SGR environment variable to 1. 🌈


πŸŽ€ okay that's the whole thing!! this page is from Jan 17 2026 and it's the flashmq(1) manual page β€” the source/version lives in the flashmq project's docs, mwah, go configure your broker, ily, bye bestie πŸ’–βœ¨πŸ¦‹
πŸ“¦ where this page comes from