{"id":32276164,"url":"https://github.com/delivereasynz/async_cable","last_synced_at":"2026-02-21T16:01:32.158Z","repository":{"id":151452465,"uuid":"622754469","full_name":"DelivereasyNZ/async_cable","owner":"DelivereasyNZ","description":"Async/stream-oriented implementation of the Rails ActionCable protocol for Dart \u0026 Flutter.","archived":false,"fork":false,"pushed_at":"2023-10-15T09:26:11.000Z","size":41,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-10-16T18:52:55.494Z","etag":null,"topics":["actioncable","async","dart","flutter"],"latest_commit_sha":null,"homepage":"http://pub.dev/packages/async_cable","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DelivereasyNZ.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-04-03T01:54:51.000Z","updated_at":"2023-04-06T04:05:17.000Z","dependencies_parsed_at":"2023-10-14T22:45:00.156Z","dependency_job_id":null,"html_url":"https://github.com/DelivereasyNZ/async_cable","commit_stats":null,"previous_names":[],"tags_count":8,"template":null,"template_full_name":null,"purl":"pkg:github/DelivereasyNZ/async_cable","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DelivereasyNZ%2Fasync_cable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DelivereasyNZ%2Fasync_cable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DelivereasyNZ%2Fasync_cable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DelivereasyNZ%2Fasync_cable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DelivereasyNZ","download_url":"https://codeload.github.com/DelivereasyNZ/async_cable/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DelivereasyNZ%2Fasync_cable/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29685022,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T15:51:39.154Z","status":"ssl_error","status_checked_at":"2026-02-21T15:49:03.425Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["actioncable","async","dart","flutter"],"created_at":"2025-10-22T23:58:51.668Z","updated_at":"2026-02-21T16:01:32.152Z","avatar_url":"https://github.com/DelivereasyNZ.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AsyncCable\n\nAsync/stream-oriented implementation of the Rails ActionCable protocol for Dart \u0026 Flutter.\n\n## Features\n\nSupports ActionCable over `dart:io` WebSocket connections.\n\nWeb (`dart:html`) is not supported, and support is not planned at this time.\n\n## Getting started\n\nTo use this library with unauthenticated ActionCable servers, you just need to know the URL.\n\nMost ActionCable servers use authentication. To use these, you first need to figure out how your Dart application will authenticate to the Rails server. For example, if you will use `Authorization` headers, you may implement your own APIs to get an authentication token, then pass it in the [AsyncCable.connect] `headers` option, and make sure the `ApplicationCable::Connection` code in the server will accept these authorization headers.\n\nThen you just need to agree on the channel naming and parameter conventions with the server code, and you're ready to start sending \u0026 receiving messages.\n\n## Usage\n\n```dart\nvoid main() async {\n  final accessToken = yourAuthToken();\n  final connection = await AsyncCable.connect(\n    \"ws://localhost:3000/cable\",\n    headers: {\n      \"Origin\": \"http://localhost:3000\",\n      \"Authorization\": \"Bearer $accessToken\",\n    },\n  );\n  final channel = await connection.subscribe(\n    \"HelloChannel\",\n    {\"foo\": \"bar\"},\n    (message) =\u003e print(\"Received ${message.message[\"greeting\"]}\"),\n  );\n  channel.perform(\"hello\", {\"greeting\": \"hi\"});\n}\n```\n\n## Additional information\n\nCopyright (c) Delivereasy Ltd., 2023.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdelivereasynz%2Fasync_cable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdelivereasynz%2Fasync_cable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdelivereasynz%2Fasync_cable/lists"}