> ## Documentation Index
> Fetch the complete documentation index at: https://abxbus.archivebox.io/llms.txt
> Use this file to discover all available pages before exploring further.

# AutoHandlerChangeEventMiddleware

> Emit auto events when handlers are registered/unregistered.

`AutoHandlerChangeEventMiddleware` emits metadata events whenever `EventBus.on(...)` or `EventBus.off(...)` changes handler registration.

## Constructor params

None.

## Setup with EventBus

<Tabs>
  <Tab title="Python">
    ```python theme={null}
    from abxbus import EventBus
    from abxbus.middlewares import AutoHandlerChangeEventMiddleware

    bus = EventBus(
        name='AppBus',
        middlewares=[AutoHandlerChangeEventMiddleware()],
    )
    ```
  </Tab>

  <Tab title="Rust">
    ```rust theme={null}
    // Not implemented in the Rust crate yet.
    // Use explicit typed handler wrappers around bus.on(...) for this behavior for now.
    ```
  </Tab>
</Tabs>

## Behavior

* On registration, emits `BusHandlerRegisteredEvent(handler=...)`.
* On unregistration, emits `BusHandlerUnregisteredEvent(handler=...)`.
* Emits a deep-copied handler metadata object.
* Useful for auditing dynamic handler topology.
