{"id":21948122,"url":"https://github.com/evolution-gaming/conhub","last_synced_at":"2025-04-23T00:16:00.147Z","repository":{"id":36786659,"uuid":"147733669","full_name":"evolution-gaming/conhub","owner":"evolution-gaming","description":"Connection hub implementation on top of akka remoting","archived":false,"fork":false,"pushed_at":"2025-02-10T10:49:48.000Z","size":160,"stargazers_count":6,"open_issues_count":41,"forks_count":5,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-04-23T00:15:54.525Z","etag":null,"topics":["akka","conhub","scala"],"latest_commit_sha":null,"homepage":null,"language":"Scala","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/evolution-gaming.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-09-06T21:05:33.000Z","updated_at":"2025-04-14T06:11:03.000Z","dependencies_parsed_at":"2025-02-09T13:30:27.962Z","dependency_job_id":null,"html_url":"https://github.com/evolution-gaming/conhub","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evolution-gaming%2Fconhub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evolution-gaming%2Fconhub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evolution-gaming%2Fconhub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evolution-gaming%2Fconhub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/evolution-gaming","download_url":"https://codeload.github.com/evolution-gaming/conhub/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250343957,"owners_count":21415041,"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":["akka","conhub","scala"],"created_at":"2024-11-29T05:12:05.903Z","updated_at":"2025-04-23T00:16:00.118Z","avatar_url":"https://github.com/evolution-gaming.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ConHub\n[![Build Status](https://github.com/evolution-gaming/conhub/workflows/CI/badge.svg)](https://github.com/evolution-gaming/conhub/actions?query=workflow%3ACI)\n[![Coverage Status](https://coveralls.io/repos/evolution-gaming/conhub/badge.svg)](https://coveralls.io/r/evolution-gaming/conhub)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/1125a2b6a00548709ba69add410f0988)](https://app.codacy.com/gh/evolution-gaming/conhub/dashboard?utm_source=gh\u0026utm_medium=referral\u0026utm_content=\u0026utm_campaign=Badge_grade)\n[![Version](https://img.shields.io/badge/version-click-blue)](https://evolution.jfrog.io/artifactory/api/search/latestVersion?g=com.evolutiongaming\u0026a=conhub_2.13\u0026repos=public)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellowgreen.svg)](https://opensource.org/licenses/MIT)\n\nConHub is a distributed registry used to manage websocket connections on the different nodes of an application.\nIt enables you to send serializable message to one or many connections hiding away complexity of distributed system. \nIn short: user provides `lookup` criteria and a `message`, there after `conHub` does the job routing message to physical instances of a matched connections\n\n## Usage example\n```scala\ntype Connection = ??? // type representing physical connection\nfinal case class Msg(bytes: Array[Byte]) // serializable\nfinal case class Envelope(lookup: LookupById, msg: Msg)\nfinal case class LookupById(id: String)\nval conHub: ConHub[String, LookupById, Connection, Envelope] = ???\nconHub ! Envelope(LookupById(\"testId\"), Msg(Array(…)))\n```\n\n## Setup\n\n```scala\naddSbtPlugin(\"com.evolution\" % \"sbt-artifactory-plugin\" % \"0.0.2\")\n\nlibraryDependencies += \"com.evolutiongaming\" %% \"conhub\" % \"1.3.0\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevolution-gaming%2Fconhub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fevolution-gaming%2Fconhub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevolution-gaming%2Fconhub/lists"}