{"id":45893043,"url":"https://github.com/lepicekmichal/SignalRKore","last_synced_at":"2026-03-13T06:00:51.582Z","repository":{"id":63374551,"uuid":"567427838","full_name":"lepicekmichal/SignalRKore","owner":"lepicekmichal","description":"A Kotlin multiplatform coroutine-based SignalR client.","archived":false,"fork":false,"pushed_at":"2025-09-13T16:55:40.000Z","size":847,"stargazers_count":43,"open_issues_count":4,"forks_count":8,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-09-13T18:42:06.930Z","etag":null,"topics":["android","client","coroutines","ios","js","jvm","kotlin","multiplatform","multiplatform-kotlin-library","signalr","signalr-client","signalr-core","web-socket","websocket"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lepicekmichal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-11-17T19:14:07.000Z","updated_at":"2025-09-13T16:55:26.000Z","dependencies_parsed_at":"2026-01-07T20:05:00.031Z","dependency_job_id":null,"html_url":"https://github.com/lepicekmichal/SignalRKore","commit_stats":null,"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/lepicekmichal/SignalRKore","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lepicekmichal%2FSignalRKore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lepicekmichal%2FSignalRKore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lepicekmichal%2FSignalRKore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lepicekmichal%2FSignalRKore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lepicekmichal","download_url":"https://codeload.github.com/lepicekmichal/SignalRKore/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lepicekmichal%2FSignalRKore/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30459760,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T03:55:51.346Z","status":"ssl_error","status_checked_at":"2026-03-13T03:55:33.055Z","response_time":60,"last_error":"SSL_read: 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":["android","client","coroutines","ios","js","jvm","kotlin","multiplatform","multiplatform-kotlin-library","signalr","signalr-client","signalr-core","web-socket","websocket"],"created_at":"2026-02-27T19:00:39.315Z","updated_at":"2026-03-13T06:00:51.576Z","avatar_url":"https://github.com/lepicekmichal.png","language":"Kotlin","funding_links":[],"categories":["网络编程"],"sub_categories":["Spring Cloud框架"],"readme":"# SignalRKore\n\n[![Maven Central](https://img.shields.io/maven-central/v/eu.lepicekmichal.signalrkore/signalrkore)](https://mvnrepository.com/artifact/eu.lepicekmichal.signalrkore)\n[![Kotlin](https://img.shields.io/badge/kotlin-2.2.10-blue.svg?logo=kotlin)](http://kotlinlang.org)\n[![GitHub License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat)](http://www.apache.org/licenses/LICENSE-2.0)\n[![Kotlin Weekly](https://img.shields.io/badge/Kotlin%20Weekly-%23416-purple?style=flat)](https://mailchi.mp/kotlinweekly/kotlin-weekly-416)\n\n![badge-android](http://img.shields.io/badge/platform-android-6EDB8D.svg?style=flat)\n![badge-jvm](http://img.shields.io/badge/platform-jvm-DB413D.svg?style=flat)\n![badge-ios](http://img.shields.io/badge/platform-ios-lightgray?style=flat)\n\n## Overview\n\nSignalRKore is a Kotlin Multiplatform client library for ASP.NET Core SignalR. It enables real-time communication between clients and servers, allowing server-side code to push content to clients and vice-versa instantly.\n\n## Why should you use **this** library\n\n|                            | [Official client library](https://learn.microsoft.com/en-us/aspnet/core/signalr/java-client) |             SignalRKore             |\n|:---------------------------|:--------------------------------------------------------------------------------------------:|:-----------------------------------:|\n| Written in                 |                                             Java                                             |               Kotlin                |\n| KMM / KMP                  |                                   :heavy_multiplication_x:                                   |          Android, JVM, iOS          |\n| Network                    |                                         OkHttp only                                          |                Ktor                 |\n| Async                      |                                            RxJava                                            |             Coroutines              |\n| Serialization              |                                   Gson (non-customizable)                                    | Kotlinx Serializable (customizable) |\n| Streams                    |                                      :heavy_check_mark:                                      |         :heavy_check_mark:          |\n| Transport fallback         |                                   :heavy_multiplication_x:                                   |      :heavy_multiplication_x:       |\n| Automatic reconnect        |                                   :heavy_multiplication_x:                                   |         :heavy_check_mark:          |\n| SSE                        |                                   :heavy_multiplication_x:                                   |         :heavy_check_mark:          |\n| Connection status          |                                   :heavy_multiplication_x:                                   |         :heavy_check_mark:          |\n| Logging                    |                                            SLF4J                                             |          Custom interface           |\n| MsgPack                    |                                      :heavy_check_mark:                                      |      :heavy_multiplication_x:       |\n| Tested by time \u0026 community |                                      :heavy_check_mark:                                      |      :heavy_multiplication_x:       |\n\n## Quick Example\n\n```kotlin\n// Create a connection\nval connection = HubConnectionBuilder.create(\"http://localhost:5000/chat\")\n\n// Start the connection\nconnection.start()\n\n// Send a message to the server\nconnection.send(\"broadcastMessage\", \"User\", \"Hello, SignalR!\")\n\n// Receive messages from the server\nconnection.on(\"broadcastMessage\", String.serializer(), String.serializer()).collect { (user, message) -\u003e\n    println(\"$user says: $message\")\n}\n\n// Don't forget to stop the connection when done\nconnection.stop()\n```\n\n## How to use\n\nPlease see the [documentation](https://lepicekmichal.github.io/SignalRKore/).\n\n## Acknowledgments\n\nAll functionality was possible to implement only thanks to [AzureSignalR ChatRoomLocal sample](https://github.com/aspnet/AzureSignalR-samples/tree/main/samples/ChatRoomLocal).\n\n## License\n\nSignalRKore is released under the [Apache 2.0 license](https://github.com/lepicekmichal/SignalRKore/blob/main/LICENSE.txt).\n\n## TODO list\n\n- [x] Readme\n- [x] Documentation\n- [ ] Add example project\n- [x] Fix up ServerSentEvents' http client\n- [x] Add logging\n- [ ] Error handling\n- [ ] Add tests\n- [x] Implement streams\n- [x] Extend to JVM\n- [x] Extend to iOS\n- [ ] Implement transport fallback\n- [x] Implement automatic reconnect\n- [ ] Reacting to stream invocation from server\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flepicekmichal%2FSignalRKore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flepicekmichal%2FSignalRKore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flepicekmichal%2FSignalRKore/lists"}