Skip to content

Changelog ​

Each package has its own version and changelog. Majors follow chanx's: every 2.x package speaks the chanx 2 protocol, so any 2.x client works with any 2.x server. Releases are also on GitHub.

@chanx-js/server ​

2.1.1 ​

Patch Changes ​

  • 460ab29: List the supported runtimes in the package README: Node with ws, Express, Koa, Fastify, Hono, NestJS, Bun and Deno.

2.1.0 ​

Minor Changes ​

  • 8bae122: Match chanx 2.12: a refused authentication closes with 4000 + status (4401, 4403, or 4500 when authenticate throws). AsyncAPI documents request and reply messages with a ref correlationId; a consumer's new credentials option becomes security schemes, operation security and a WebSocket binding; servers and securitySchemes options describe the rest. The docs page loads a pinned, hash-checked release of its assets, and the docs option points it at your own copies.

2.0.2 ​

Patch Changes ​

  • e1abc6a: The package README says what the package is for, shows a working example, and links to the docs.
  • Updated dependencies [e1abc6a]
    • @chanx-js/layers@2.0.1

2.0.1 ​

Patch Changes ​

  • c797122: Depend on any compatible 2.x of @chanx-js/layers and @chanx-js/server, not only the exact version released alongside.

@chanx-js/client ​

2.3.0 ​

Minor Changes ​

  • f075cee: A socket closed with 4400 to 4499, a refused authentication, no longer reconnects by default; a server error (4500) still does. Pass shouldReconnect to choose otherwise.

2.2.1 ​

Patch Changes ​

  • e1abc6a: The package README says what the package is for, shows a working example, and links to the docs.

2.2.0 ​

Minor Changes ​

  • 56a8d42: A headers option, on createClient() or connect(), sends headers with the upgrade request from Node 22+, Bun and Deno, so a service authenticates without ws. Connections with different headers never share a socket, and a custom socketFactory receives them as a third argument.

Patch Changes ​

  • 56a8d42: An error thrown while opening a socket, such as no global WebSocket, is reported through reportError instead of being retried in silence.

2.1.0 ​

Minor Changes ​

  • c489c24: request() resolves with the reply its action declares, such as PongMessage for ping, on connections, topic handles and every framework binding. Descriptors take the replies as an optional third type argument; without it, replies stay ChanxMessage.

Patch Changes ​

  • de61aa1: connection.ready() rejects once the socket gives up, is refused or is terminated, instead of waiting forever.
  • 18ecacf: for await loops over a connection or topic end once the socket gives up reconnecting, instead of waiting forever.

@chanx-js/codegen ​

2.1.1 ​

Patch Changes ​

  • e1abc6a: The package README says what the package is for, shows a working example, and links to the docs.

2.1.0 ​

Minor Changes ​

  • f7c72a3: Generated channels and topics carry what answers each request, from the schema's reply, so request() is typed by the action sent. The output needs @chanx-js/client 2.1 or later.

Patch Changes ​

  • 3e777a3: Generated relative imports carry the .js extension, so the output compiles under TypeScript's NodeNext resolution and runs on Node's ESM.
  • 6f5857e: channels.ts imports defineTopic only when a channel has topics, so it compiles under noUnusedLocals, as in Vite's templates.

@chanx-js/layers ​

2.1.0 ​

Minor Changes ​

  • f56c7e1: RedisPubSubChannelLayer takes a Redis Sentinel host, { sentinels, masterName } as in Python's {"sentinels": [...], "master_name": ...}, and follows the master through a failover.

2.0.1 ​

Patch Changes ​

  • e1abc6a: The package README says what the package is for, shows a working example, and links to the docs.

@chanx-js/nestjs ​

2.0.2 ​

Patch Changes ​

  • e1abc6a: The package README says what the package is for, shows a working example, and links to the docs.
  • Updated dependencies [e1abc6a]
    • @chanx-js/server@2.0.2

2.0.1 ​

Patch Changes ​

  • c797122: Depend on any compatible 2.x of @chanx-js/layers and @chanx-js/server, not only the exact version released alongside.
  • Updated dependencies [c797122]
    • @chanx-js/server@2.0.1

Up to 2.0.0 ​

Until 2.0.0, every package was released together, from one changelog.

2.0.0 (2026-10-24) ​

0.1.3 (2026-10-24) ​

Features ​

  • layers: add channel layers with a Redis pub/sub layer compatible with Python's (d708320)
  • nestjs: add the NestJS integration (0752b07)
  • server: add a Fastify adapter (d383df9)
  • server: add class consumers with decorators (cbf1f1e)
  • server: add crossws and Hono adapters (fe9bfa1)
  • server: add error hooks to consumers and topics (293f1ed)
  • server: add groups, broadcasts and events over channel layers (aad2a9f)
  • server: add messages, consumers and frame dispatch (531955e)
  • server: add rejectBeforeUpgrade to refuse upgrades with an HTTP status (55e20d1)
  • server: add Topic classes and per-subscription state (d588f3c)
  • server: add topics (cb2379e)
  • server: drop clients that stop reading in the ws adapters (c362855)
  • server: generate AsyncAPI as chanx does (a632134)
  • server: serve consumers on Node HTTP servers through ws (01dba51)
  • server: stricter public types, test captures and chanx 2.11.8 frames (f1dcb86)

Bug Fixes ​

  • server: validate a consumer with one handler as chanx does (c1428c5)

0.1.2 (2026-09-26) ​

Bug Fixes ​

  • codegen: name a topic-only consumer's connection after the consumer (5499bf7)
  • codegen: re-export reused types from schemas (cf266fa)

0.1.1 (2026-09-26) ​

Features ​

  • core: pass the frame envelope to handlers (380b85a)

Bug Fixes ​

  • infer every joined topic in useTopics and createTopics (ad9c076)

0.1.0 (2026-09-26) ​

Features ​

  • codegen: add @chanx-js/codegen (b9d8333)
  • core: add the framework-agnostic controller (2398697)
  • core: add the protocol, shared socket, connections and topics (be847bd)
  • react: add useChannel, useTopic and useTopics (c717523)
  • vue,svelte,solid: add the Vue, Svelte and Solid bindings (a86c6ec)

MIT licensed