Skip to content

Releases: Tanendra77/Solace-QueueProbe

QueueProbe v1.0.1

23 Feb 18:37

Choose a tag to compare

v1.0.1 — Initial Release

Release date: 2026-02-23
Platform: Windows 64-bit · Linux 64-bit
Solace C SDK: 7.33.1.1

This is the first public release of QueueProbe, a lightweight Solace PubSub+ message consumer written in C. QueueProbe supports queue consuming, queue browsing, and topic subscribing with rich output formatting, TLS, and proxy support — available as pre-compiled binaries for both Windows and Linux (64-bit) with no SDK installation required.


Highlights

Three messaging modes out of the box:

  • Queue Consumer — binds to a durable queue and consumes messages with explicit client ACK
  • Browse Mode (--browse) — inspect queue contents non-destructively without removing messages
  • Topic Subscriber (--topic) — session-level direct topic subscriptions, repeatable for multiple topics

Connectivity:

  • SSL/TLS transport via OpenSSL (tcps://) — bundled on Windows, system-provided on Linux
  • SOCKS5 and HTTP-Connect proxy support via --proxy
  • Certificate validation with --certdir; --no-verify available for self-signed/dev environments

Cross-platform:

  • Single source file (solace_consumer_debug.c) compiles on both Windows (MinGW/MSYS2) and Linux (gcc)
  • Linux binary uses rpath=$ORIGINlibsolclient.so is bundled alongside the binary, no LD_LIBRARY_PATH or root access needed
  • Windows binary bundles libsolclient.dll, libcrypto-3.dll, and libssl-3.dll — extract and run

New in This Release

Linux Support

  • Pre-compiled Linux 64-bit binary included in linux/ alongside libsolclient.so
  • rpath=$ORIGIN embedded at build time — the binary resolves its shared library from its own directory at runtime with no environment setup needed
  • OpenSSL is not bundled on Linux — the Solace SDK uses the system OpenSSL already present on any modern distro
  • LINUX_BUILD.md added to the repo with a detailed step-by-step build guide
  • Makefile added — build with SOLACE_HOME=/path/to/solclient make linux
  • Release archives: QueueProbe-vX.Y.Z-windows-x64.zip and QueueProbe-vX.Y.Z-linux-x64.tar.gz
  • Automated GitHub Actions release workflow (.github/workflows/release.yml)

Config File Support

  • Auto-load — if queueprobe.conf exists in the binary's directory it is loaded automatically with no flags needed
  • --config <path> flag — explicit config file path for managing multiple environments
  • Positional .conf argumentQueueProbe.exe myenv.conf / ./QueueProbe myenv.conf is treated as a config file path
  • Three-tier priority: hardcoded defaults → config file → CLI args (CLI always wins)
  • key = value format with full-line # / ; comments and inline [whitespace]# comments supported
  • queueprobe.conf.example template added to the repo for quick-start reference
  • queueprobe.conf and *.conf added to .gitignore to prevent accidental credential commits

Output & Logging

  • --no-color flag — disable all ANSI colour output
  • TTY auto-detection — colours are automatically disabled when stdout is not a terminal (piped or redirected)
  • Clean log file — ANSI escape sequences are stripped before writing to the log file; the log is always plain text regardless of terminal colour settings
  • Payload in log — message payload (JSON or binary) is now written to the log file, not only to the terminal
  • Message separators in log+----- Message #N -----+ header and closing line written to log for easy parsing and post-processing
  • Extended message metadata — the following fields are now logged per message: AppMsgId, ReplyTo, CorrelationId, SenderId, ClassOfService, Priority, TTL, DMQEligible

CLI Options

Option Default Description
<queue_name> (required for queue/browse) Name of the durable queue
--host <url> tcp://localhost:55555 Broker URL (tcp:// or tcps://)
--vpn <name> default Message VPN name
--username <user> default Client username
--password <pass> (empty) Client password
--proxy <url> (none) Proxy URL (socks5://, httpc://)
--browse (off) Enable browse mode (no ACK)
--topic <topic> (none) Topic subscription (repeatable)
--certdir <path> (none) Trust-store directory (enables cert validation)
--no-verify (off) Disable SSL certificate validation
--logfile <file> solace_debug.log Log output file path
--config <file> (none) Load settings from a config file
--no-color (off) Disable ANSI colour output

Bundled Files

Windows (QueueProbe-vX.Y.Z-windows-x64.zip):

windows/
├── QueueProbe.exe              # Pre-compiled Windows 64-bit binary
├── libsolclient.dll            # Solace client library
├── libcrypto-3.dll             # OpenSSL — required for tcps://
├── libssl-3.dll                # OpenSSL — required for tcps://
└── queueprobe.conf.example     # Config file template

Linux (QueueProbe-vX.Y.Z-linux-x64.tar.gz):

linux/
├── QueueProbe                  # Pre-compiled Linux 64-bit binary
├── libsolclient.so             # Solace client library (symlink)
└── libsolclient.so.1.7.33.1.1 # Solace client library (versioned)

Dependencies

Library Version Windows Linux
libsolclient 7.33.1.1 bundled (libsolclient.dll) bundled (libsolclient.so)
OpenSSL 3.x bundled (libcrypto-3.dll, libssl-3.dll) system-provided
C runtime Windows UCRT (built into Windows 10+) glibc (built into any modern distro)

Known Limitations

  • SSL certificate validation is disabled by default for development convenience. Use --certdir to point at a trust-store directory and enable full validation for production environments.
  • On Linux, OpenSSL is not bundled — ensure libssl and libcrypto are installed on the target system (present by default on any modern distro).

License

Copyright 2026 Tanendra77 (github.com/Tanendra77)
Licensed under the [Apache License, Version 2.0](https://github.com/Tanendra77/Solace-QueueProbe/blob/main/LICENSE).QueueProbe — Release Notes