# rsms/gotalk

Async peer communication protocol & library

Repository: https://github.com/rsms/gotalk
Canonical: https://ross.abutalabs.com/products/gotalk
Language: Go
License: MIT
License Family: permissive
Topics: protocol-communication, streaming, websocket, golang
Last push: 2023-02-25T01:31:21+00:00

## Health v2 (maintenance only)
Score: 23/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 8, longevity 100
- inputs: {"age_days": 4242, "days_push": 1286, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1204, forks 77 (observed 2026-08-28T04:03:59.080371+00:00)

## What it is
Gotalk is a Go library and wire protocol for bidirectional, concurrent peer-to-peer communication over any byte stream, with first-class WebSocket support and a small companion JavaScript client. It lets any peer expose operations and issue requests, multiplexing many requests and responses over a single persistent connection.

## Use cases
- build a websocket chat server in Go
- let a web app coordinate with a backend over a persistent connection
- divide work among a bunch of cooperating programs
- implement bidirectional request/response between browser and server
- multiplex many concurrent requests over one connection
- expose named operations callable from JavaScript in the browser

## When to choose
- you need bidirectional RPC where both client and server can issue requests
- you want pipelined, non-blocking concurrent requests over a single WebSocket
- you want a simple, debuggable wire protocol with a small Go and JavaScript API

## When to avoid
- you need a widely adopted, actively maintained protocol with a large ecosystem
- you only need plain REST or a standard request/response HTTP API
- you need gRPC-style typed contracts, streaming, or multi-language support beyond Go and JavaScript

## Facets
- artifact type: library
- maturity: maintenance
- function: websocket, rpc, serialization, http-server
- domain: networking, web-development, backend, microservices
- platform: go, cross-platform
- tags: peer-to-peer-communication, multiplexing-protocol, bidirectional-rpc, pipelining, javascript-client, real-time, web-server

## Member repositories
- rsms/gotalk (main) score 23

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:59.080371+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T06:19:40.715732+00:00, confidence not recorded.
  - readme: https://github.com/rsms/gotalk (fetched 2026-08-28T04:03:59.080371+00:00, sha 8d7da2b93ca6)
- Data as of 2026-08-30T08:39:29.467469+00:00.
