Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: rmqtt/rmqtt
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 3ac5d56
Choose a base ref
...
head repository: rmqtt/rmqtt
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 3f1862d
Choose a head ref
  • 17 commits
  • 38 files changed
  • 1 contributor

Commits on Aug 29, 2025

  1. chore: bump version to 0.16.0 and update Docker build process

    Version Update:
    - Bumped workspace version from 0.15.0 to 0.16.0
    - Updated all plugin dependencies to 0.16.0
    
    Docker Build Improvements:
    - **Commented out full release-docker target**: Temporarily disabled complete Docker build
    - **Enabled latest tag publishing**: Uncommented latest tag pushes for both architectures:
      - `latest-amd64` and `latest-arm64` for individual architectures
      - Multi-arch `latest` tag creation in merge target
    
    Key Changes:
    1. **Version Increment**: Major version bump to 0.16.0 for all components
    2. **Docker Pipeline**:
       - Disabled full release-docker to focus on per-architecture builds
       - Enabled latest tag publishing for better deployment flexibility
       - Maintained multi-arch manifest creation for latest tag
    
    3. **Consistency**: All workspace dependencies synchronized to 0.16.0
    
    Benefits:
    - **Clear Version Progression**: Proper semantic versioning with major release
    - **Improved Docker Deployment**: More flexible tagging strategy
    - **Multi-arch Support**: Enabled latest tags for both AMD64 and ARM64
    - **Maintenance Friendly**: Commented code preserved for future reference
    
    This prepares the codebase for the 0.16.0 release with an improved Docker build and publishing workflow.
    bittcrafter committed Aug 29, 2025
    Configuration menu
    Copy the full SHA
    ce24062 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #271 from bittcrafter/master

    chore: bump version to 0.16.0 and update Docker build process
    bittcrafter authored Aug 29, 2025
    Configuration menu
    Copy the full SHA
    022e285 View commit details
    Browse the repository at this point in the history

Commits on Aug 30, 2025

  1. chore(logging): change default log level from Debug to Info

    - Changed default logging level from `slog::Level::Debug` to `slog::Level::Info`
    - Reduces verbosity for production environments
    - Maintains useful operational logging while minimizing noise
    - Better out-of-the-box experience for new deployments
    bittcrafter committed Aug 30, 2025
    Configuration menu
    Copy the full SHA
    07e3d12 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #273 from bittcrafter/master

    chore(logging): change default log level from Debug to Info
    bittcrafter authored Aug 30, 2025
    Configuration menu
    Copy the full SHA
    1c170e5 View commit details
    Browse the repository at this point in the history

Commits on Aug 31, 2025

  1. fix(session): ensure proper cleanup of inflight messages on publish f…

    …ailure
    
    - Added error mapping to remove inflight entry if `publish()` fails
    - Separated ACK sending from publish operation for better error handling
    - Guaranteed inflight message cleanup in both success and error cases
    
    This prevents resource leaks when QoS 1 message publishing fails by ensuring the inflight tracking is properly maintained.
    bittcrafter committed Aug 31, 2025
    Configuration menu
    Copy the full SHA
    1101fcd View commit details
    Browse the repository at this point in the history
  2. refactor(session): simplify error handling using inspect_err

    - Replaced `map_err` with `inspect_err` for cleaner error side effects
    - Maintains same functionality: removes inflight entry on publish failure
    - More idiomatic Rust error handling pattern
    - Keeps original error unchanged while performing cleanup
    bittcrafter committed Aug 31, 2025
    Configuration menu
    Copy the full SHA
    0c921fa View commit details
    Browse the repository at this point in the history
  3. Merge pull request #2 from bittcrafter/dev/0.16.0-optimize

    fix(session): ensure proper cleanup of inflight messages on publish failure
    bittcrafter authored Aug 31, 2025
    Configuration menu
    Copy the full SHA
    2d7c67b View commit details
    Browse the repository at this point in the history
  4. Merge pull request #275 from bittcrafter/master

    fix(session): ensure proper cleanup of inflight messages on publish failure
    bittcrafter authored Aug 31, 2025
    Configuration menu
    Copy the full SHA
    0123f93 View commit details
    Browse the repository at this point in the history
  5. refactor(codec): separate codec and broker publish types and bump cod…

    …ec to 0.2.0
    
    Major Architectural Changes:
    
    1. **Version Updates**:
       - Bumped rmqtt-codec from 0.1.2 to 0.2.0 (major version change)
       - Updated workspace dependency to use rmqtt-codec 0.2
    
    2. **Type Separation**:
       - **CodecPublish**: Raw MQTT packet structure used for encoding/decoding
         - Removed `delay_interval` and `create_time` fields (broker concerns)
         - Simplified serialization/deserialization
       - **Publish**: Broker-level structure with additional metadata
         - Added `target_clientid`, `delay_interval`, and `create_time` fields
         - Provides higher-level functionality for broker operations
    
    3. **Key Improvements**:
       - **Separation of Concerns**: Codec layer now purely handles MQTT protocol
       - **Broker Features**: Delay publishing and creation timestamps moved to broker level
       - **Type Safety**: Clear distinction between wire format and broker representation
       - **Performance**: Reduced codec complexity and memory footprint
    
    4. **API Changes**:
       - Added `Deref` and `DerefMut` implementations for seamless access to inner fields
       - New builder methods: `target_clientid()`, `delay_interval()`, `create_time()`
       - Conversion traits between `CodecPublish` and `Publish`
    
    5. **Affected Components**:
       - All bridge plugins (Kafka, NATS, ReductStore, Pulsar, MQTT)
       - HTTP API plugin
       - Message storage systems
       - System topics
       - Topic rewriting
       - Delayed publish handling
       - Session management
    
    6. **Migration**:
       - Updated all internal usage to new type system
       - Maintained backward compatibility through conversion traits
       - Simplified timestamp handling across the codebase
    
    Benefits:
    - **Clean Architecture**: Clear separation between protocol and business logic
    - **Improved Maintainability**: Each type has a single responsibility
    - **Better Performance**: Reduced codec complexity
    - **Enhanced Flexibility**: Broker can add metadata without affecting protocol
    bittcrafter committed Aug 31, 2025
    Configuration menu
    Copy the full SHA
    e045d3d View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    fe354b5 View commit details
    Browse the repository at this point in the history
  7. Merge pull request #276 from bittcrafter/master

    refactor(codec): separate codec and broker publish types and bump codec to 0.2.0
    bittcrafter authored Aug 31, 2025
    Configuration menu
    Copy the full SHA
    2d505c8 View commit details
    Browse the repository at this point in the history

Commits on Sep 13, 2025

  1. perf(shutdown): reduce shutdown delay and exit explicitly

    - Reduced shutdown delay from 1 second to 100 milliseconds
    - Added explicit `std::process::exit(0)` for immediate termination
    - Maintains cleanup opportunity while improving shutdown responsiveness
    
    This change provides faster service termination while ensuring the process exits cleanly.
    bittcrafter committed Sep 13, 2025
    Configuration menu
    Copy the full SHA
    08b8719 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #283 from bittcrafter/dev/0.16.0-optimize

    perf(shutdown): reduce shutdown delay and exit explicitly
    bittcrafter authored Sep 13, 2025
    Configuration menu
    Copy the full SHA
    ab530c8 View commit details
    Browse the repository at this point in the history
  3. feat(shared): add targeted client forwarding support

    Refactored the shared module across cluster implementations to support two distinct forwarding modes:
    
    1. **Targeted Client Forwarding** (`forward_to_target_client`):
       - New method added to directly forward messages to a specific client ID
       - Handles both local and cross-node forwarding scenarios
       - Uses gRPC for inter-node communication with timeout handling
       - Maintains statistics for forwarding operations
    
    2. **Subscription-Based Forwarding** (`forward_to_subscriptions`):
       - Existing broadcast logic now encapsulated in this method
       - Maintains previous behavior for non-targeted messages
    
    **Key Changes:**
    * Added `get_target_node_id()` method to router for client-node mapping
    * Modified main `forwards()` method to dispatch based on `publish.target_clientid` presence
    * Implemented consistent logic across all cluster implementations (broadcast and raft)
    * Added proper logging and error handling for cross-node communications
    * Maintained backward compatibility with existing subscription-based forwarding
    
    **Files Modified:**
    * rmqtt-plugins/rmqtt-cluster-broadcast/src/shared.rs
    * rmqtt-plugins/rmqtt-cluster-raft/src/router.rs
    * rmqtt-plugins/rmqtt-cluster-raft/src/shared.rs
    * rmqtt/src/shared.rs
    
    This refactor enables more efficient direct messaging while maintaining existing pub/sub functionality.
    bittcrafter committed Sep 13, 2025
    Configuration menu
    Copy the full SHA
    2f8a266 View commit details
    Browse the repository at this point in the history
  4. Merge pull request #284 from bittcrafter/dev/0.16.0

    feat(shared): add targeted client forwarding support
    bittcrafter authored Sep 13, 2025
    Configuration menu
    Copy the full SHA
    e0f489b View commit details
    Browse the repository at this point in the history

Commits on Sep 14, 2025

  1. feat: add new p2p-messaging plugin

    Introduces a new peer-to-peer messaging plugin to the RMQTT ecosystem.
    
    **Changes Made:**
    * Added new plugin dependency `rmqtt-p2p-messaging` in workspace Cargo.toml
    * Updated plugin version to 0.16.0 in package metadata
    * Included the plugin in rmqtt-bin executable dependencies
    * Added plugin to plugins Cargo.toml features (full and p2p-messaging)
    * Registered plugin in plugins library exports
    * Added plugin to default startup configuration in rmqtt.toml
    * Included plugin registration example in plugins example code
    
    **Files Modified:**
    * Cargo.toml - Added new plugin dependency
    * rmqtt-bin/Cargo.toml - Added plugin to binary dependencies
    * rmqtt-plugins/Cargo.toml - Added plugin feature flags
    * rmqtt-plugins/src/lib.rs - Added plugin module export
    * rmqtt.toml - Added plugin to default startup list
    * rmqtt/examples/plugins/src/main.rs - Added plugin registration example
    
    This new plugin enables peer-to-peer messaging capabilities within the RMQTT broker ecosystem.
    bittcrafter committed Sep 14, 2025
    Configuration menu
    Copy the full SHA
    3fa363f View commit details
    Browse the repository at this point in the history
  2. Merge pull request #285 from bittcrafter/dev/0.16.0

    feat: add new p2p-messaging plugin
    bittcrafter authored Sep 14, 2025
    Configuration menu
    Copy the full SHA
    3f1862d View commit details
    Browse the repository at this point in the history
Loading