# Rails introduction

Rails integration comes from the sister gem `hibiki_rails`: connection-scoped signal graphs over ActionCable, pushing re-rendered HTML to the page — either through Turbo Streams, or over the channel's own subscription to the gem's packaged client (see [The JS client](/hibiki/the-js-client/)).

```
cable action arrives → mutate signals → effects render partials →
Turbo Streams broadcast → Turbo morphs the DOM
```

A graph lives per cable connection (in practice: per browser tab): it is built when the channel subscribes and disposed when it unsubscribes. Effects subscribe to whatever signals they read, so when an action writes a signal, exactly the affected effects re-render and broadcast — nothing else moves.

For Phlex apps, a second sister gem, `hibiki_phlex`, turns Phlex components into reactive components with a render effect per component (see [Phlex support](/hibiki/phlex-support/)).

Supports Rails >= 7.1, Ruby >= 3.4.
