{"id":19522282,"url":"https://github.com/anycable/actioncable-next","last_synced_at":"2025-04-10T02:19:20.189Z","repository":{"id":262029507,"uuid":"865593722","full_name":"anycable/actioncable-next","owner":"anycable","description":"Next-gen Action Cable implementation","archived":false,"fork":false,"pushed_at":"2025-02-04T00:58:37.000Z","size":125,"stargazers_count":47,"open_issues_count":1,"forks_count":2,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-10T02:19:14.705Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anycable.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"MIT-LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-30T19:37:16.000Z","updated_at":"2025-04-02T05:33:46.000Z","dependencies_parsed_at":"2024-11-10T02:53:42.783Z","dependency_job_id":"b8530b6b-e19b-46bb-b5b1-4c62272df782","html_url":"https://github.com/anycable/actioncable-next","commit_stats":null,"previous_names":["anycable/actioncable-next"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anycable%2Factioncable-next","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anycable%2Factioncable-next/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anycable%2Factioncable-next/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anycable%2Factioncable-next/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anycable","download_url":"https://codeload.github.com/anycable/actioncable-next/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248142906,"owners_count":21054672,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T00:38:04.265Z","updated_at":"2025-04-10T02:19:20.167Z","avatar_url":"https://github.com/anycable.png","language":"Ruby","funding_links":[],"categories":["Ruby"],"sub_categories":[],"readme":"# Action Cable Next\n\nThis gem provides the functionality of the _server adapterization_ PR: [rails/rails#50979](https://github.com/rails/rails/pull/50979).\n\nSee the PR description for more information on the purpose of this refactoring.\n\nThere are also some additional improvements added on top of the PR (see below).\n\n## Usage\n\nAdd this line to your application's Gemfile **before Rails or Action Cable**:\n\n```ruby\ngem \"actioncable-next\"\n\ngem \"rails\", \"~\u003e 7.0\"\n```\n\nThen, you can use Action Cable as before. Under the hood, the new implementation would be used.\n\n### RSpec support\n\nThis gem also includes the corresponding patch for RSpec Rails (see [PR](https://github.com/palkan/rspec-rails/pull/1)). You MUST activate it explicitly\nby adding the following line to your `spec/rails_helper.rb`:\n\n```ruby\n# after rspec-rails is loaded\nrequire \"rspec/rails\"\nrequire \"action_cable/next/rspec\"\n```\n\n### New features\n\n#### `ActionCable.server.config.fastlane_broadcasts_enabled = true`\n\nThis option allows you to enable the _fast lane_ for broadcasting messages. When enabled, messages sent via `ActionCable.server.broadcast` are only decoded-encoded from/to JSON once per channel identifier and not for every connected client. This significantly reduces the broadcasting latency (up to 2x faster).\n\n#### `Connection#broadcast`\n\nYou can now broadcast message from connection or channel instances using the connection `#broadcast` method. For example:\n\n```ruby\nclass TestChannel \u003c ActionCable::Channel::Base\n  def notify_all(data)\n    connection.broadcast(\"testing-#{test_id}\", data)\n  end\nend\n```\n\nThe purpose of this interface is to avoid direct usage of `server` or `ActionCable.server` in channels code.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanycable%2Factioncable-next","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanycable%2Factioncable-next","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanycable%2Factioncable-next/lists"}