Tags

Tags give the ability to mark specific points in history as being important
  • v0.2.3

    v0.2.3
    
    - Generated Go validation skips the constraints of an optional array, map or raw JSON field when it is absent, and of a nullable one when it is null. Before, an absent optional array with `minItems` failed validation. Regenerate to pick up the fix.
  • v0.2.2

    v0.2.2
    
    - A `message-matchers` value can be a list, which matches when the pointer holds any of its entries: `/messages/0/type: [notice, info]`. An empty list fails generation. Go matchers gain `asyncapirt.Matcher.AnyOf`; the TypeScript runtime matcher gains `anyOf`. Regenerate to pick up the runtime change.
  • v0.2.1

    v0.2.1
    
    - Added the `gen-asyncapi` agent skill, which teaches a coding agent how to set up the generator and use the Go and TypeScript code it writes. It installs from the psyb0t Claude Code and Codex marketplaces and from ClawHub with `openclaw skills install @psyb0t/gen-asyncapi`.
    - The README links go-asyncapi for reading specs without generating code, and drops the imported-by badge.
  • v0.2.0

    v0.2.0
    
    - Renamed the project from `gogen-asyncapi` to `gen-asyncapi`, since it now writes more than Go. Change imports, the `go get -tool` line and every `go:generate` line to the new names, then regenerate:
    
      | Old | New |
      |---|---|
      | `github.com/psyb0t/gogen-asyncapi/asyncapirt` | `github.com/psyb0t/gen-asyncapi/asyncapirt` |
      | `github.com/psyb0t/gogen-asyncapi/asyncapirt/gorillaws` | `github.com/psyb0t/gen-asyncapi/asyncapirt/gorillaws` |
      | `github.com/psyb0t/gogen-asyncapi/cmd/gogen-asyncapi` | `github.com/psyb0t/gen-asyncapi/cmd/gen-asyncapi` |
      | `go tool gogen-asyncapi` | `go tool gen-asyncapi` |
    - Added TypeScript output. `language: typescript` in the config, or `-language=typescript` on the command line, writes one dependency-free `.ts` file with interfaces and unions, a `validate<Type>` assert function per type, message decoding, a `Handler` and a `Client` that takes a browser `WebSocket` as its transport. `package` is optional for TypeScript, and the default output is `asyncapi.gen.ts`.
    - Added the `-language` flag.
    - Moved the spec loader to its own module, [go-asyncapi](https://github.com/psyb0t/go-asyncapi), so other tools can read AsyncAPI 3 documents with it. The generator depends on its v0.1.0.
    - Every example, the 19 official ones included, now also generates TypeScript. CI type-checks it under strict settings and runs `node:test` suites for the chat, shapes and kitchensink examples.
    - Added Node.js, pnpm and a locked TypeScript toolchain to the dev image, the `make test-ts` and `pkg-*` targets, and `pnpm audit` in `make sec`.
  • v0.1.0

    v0.1.0
    
    - Added the `gogen-asyncapi` command, which generates Go types, strict JSON codecs, validation, message decoding and a client from an AsyncAPI 3 document. It takes a config file and the spec path, and installs with `go get -tool` or `go install`.
    - Added the `asyncapirt` runtime package the generated code uses, and `asyncapirt/gorillaws`, a transport over gorilla/websocket with header, bearer token, query and subprotocol options.
    - Covered the AsyncAPI 3.0 objects and JSON Schema keywords listed in `docs/spec-coverage.md`.
    - Added examples, including one document that uses every AsyncAPI 3.0 object and the 19 official AsyncAPI examples, all generated and tested in CI.