{"id":32281403,"url":"https://github.com/nbspou/switchboard","last_synced_at":"2025-10-23T00:57:17.251Z","repository":{"id":56840976,"uuid":"158929219","full_name":"nbspou/switchboard","owner":"nbspou","description":"Microservice communication protocol layers.","archived":false,"fork":false,"pushed_at":"2019-01-26T08:36:27.000Z","size":199,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"release/v2.0","last_synced_at":"2025-10-23T00:57:14.075Z","etag":null,"topics":["microservices-architecture","protocol-library"],"latest_commit_sha":null,"homepage":"","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/nbspou.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}},"created_at":"2018-11-24T11:23:05.000Z","updated_at":"2019-09-26T14:04:29.000Z","dependencies_parsed_at":"2022-08-29T12:50:43.068Z","dependency_job_id":null,"html_url":"https://github.com/nbspou/switchboard","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nbspou/switchboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nbspou%2Fswitchboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nbspou%2Fswitchboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nbspou%2Fswitchboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nbspou%2Fswitchboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nbspou","download_url":"https://codeload.github.com/nbspou/switchboard/tar.gz/refs/heads/release/v2.0","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nbspou%2Fswitchboard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280540655,"owners_count":26347724,"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","status":"online","status_checked_at":"2025-10-22T02:00:06.515Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["microservices-architecture","protocol-library"],"created_at":"2025-10-23T00:57:12.986Z","updated_at":"2025-10-23T00:57:17.237Z","avatar_url":"https://github.com/nbspou.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Switchboard\n\nMicroservice communication protocol. \n\n## Frames\n\nThe base connection is any framed messaging protocol. The current WSTalk2 protocol target is WebSockets since it's ubiquitously available everywhere.\n\n## Channels\n\nThe message frame connection is multiplexed into channels for arbitrary usage. Both sides of the connection can arbitrarily open new channels. When opening a channel, an arbitrary payload blob is included for the application to interpret and process. The payload can be used for authentication, identification, and addressing purposes.\n\nThese multiplexed channels are effectively a framed messaging protocol, and technically can be recursively multiplexed into more channels.\n\nAn entire channel can be transparantly proxied to another host without parsing it's contents.\n\n## Message Chain\n\nThe message chain protocol is defined to run on top of any framed messaging protocol. This is similar to an RPC protocol, but rather than being purely request-response, each message can be a response to a previous message, and multiple messages can be sent as a response to form a streamed response. The message chain can recursively respond with streams to individual stream responses, and so on.\n\nAn entire message chain starting from any message can be transparantly proxied to another host without parsing it's contents.\n\n## Usage\n\n```\n\n```\n\n## Future Plans\n\nRedesign to target both QUIC and WebSockets as primary transport layers.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnbspou%2Fswitchboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnbspou%2Fswitchboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnbspou%2Fswitchboard/lists"}