Skip to content

Releases: LinnetCodes/gpmq

version-0.5.0

Choose a tag to compare

@LinnetCodes LinnetCodes released this 07 Jul 15:03

[0.5.0] - 2026-07-07

跟随依赖 gpclog 0.3.0 的破坏性变更(log_path 字段重命名为 log_dir)。
GPMQ 自身源码无需改动,但示例日志配置和依赖约束需要同步更新。请阅读下方的
Breaking Changes

Tracks the breaking rename of the log_path field to log_dir in the
dependency gpclog 0.3.0. No GPMQ source code change was required, but the
example log configs and the dependency constraint had to be updated in lockstep.
See Breaking Changes below.

⚠️ Breaking Changes

  • log_pathlog_dir in example log YAML configs. All 12 files under
    examples/cfgs_{linux,windows}/logs/*.yaml used the old log_path: field,
    which gpclog 0.3.0 no longer recognizes (it now reads log_dir). Under
    gpclog 0.3.0's stricter validation these configs would silently fall back to
    defaults instead of honoring the configured directory. If you copied these
    example configs, rename log_path: to log_dir: in your own copies too.
    • 示例日志配置中 log_path 改为 log_direxamples/cfgs_{linux,windows}/logs/
      下的 12 个 YAML 全部使用了 gpclog 0.3.0 已废弃的 log_path: 字段。若你复制过这些
      配置,请同样把 log_path: 改成 log_dir:

Changed

  • Dependency constraint gpclog>=0.2.0gpclog>=0.3.0 (pyproject.toml).
    GPMQ now requires gpclog 0.3.0 or newer; 0.2.0 is no longer supported.
    • 依赖约束 gpclog>=0.2.0 提升为 gpclog>=0.3.0,不再支持 0.2.0。

Internal / Infrastructure

  • Example log YAML comments updated to list gpclog 0.3.0's new "cwd" path mode
    alongside the existing auto | env | home | 绝对路径.
  • uv.lock re-resolved against gpclog 0.3.0.

version-0.4.0

Choose a tag to compare

@LinnetCodes LinnetCodes released this 02 Jul 18:12

GPMQ

General Purpose Message Queue — A lightweight Python distributed message queue built on Redis Streams, designed for personal projects.

Beta release of version-0.4.0

Features

  • Multiple messaging patterns — sync, async, fire-and-forget, batch with sliding-window concurrency, and message relay
  • Targeted publishing — direct a message to specific subscriber(s) via target_subscribers; registered-but-unlisted subscribers discard it
  • Configurable run-forever method — customize the subscriber's main loop with @run_forever_method
  • Redis Streams backend — reliable message delivery with consumer groups
  • Multi-process workers — configurable worker count per subscriber
  • YAML configuration — type-safe config via gpconfig with common/specific merging
  • Audit trail — optional SQLite-based message and result logging
  • Worker visibility — query all workers in a consumer group including idle/stale ones via get_consumer_group_workers()
  • CLI tools — start workers, query audit records, check system status