Stability
Gluegun 1.0 uses semantic versioning.
Stable public API
Section titled “Stable public API”These modules are stable public API. They follow the semver compatibility guarantees:
gluegungluegun/connectiongluegun/requestgluegun/clientgluegun/websocketgluegun/messagegluegun/responsegluegun/errorgluegun/fin
In those modules:
- New functions or options are a minor release.
- Bug fixes and documentation-only changes are patch releases.
- Removal or change of an existing public API is a major release.
What is not stable
Section titled “What is not stable”Items marked @internal are not part of the stable API. This applies even when the generated reference docs show them for deterministic tests or FFI plumbing. They can change or disappear in any release.
Opaque public types are stable at their documented boundary. Their hidden representation is not stable.
Closed ADTs
Section titled “Closed ADTs”For compatibility, Gluegun treats these ADTs as closed:
gluegun/connection.Protocolgluegun/connection.Transportgluegun/message.Message
A new variant in one of those types is a breaking change and requires a major release. Existing pattern matches in caller code can then require changes.
Minimum runtime versions
Section titled “Minimum runtime versions”Gluegun currently supports:
- Erlang/OTP
>= 27 - Gleam
>= 1.7.0 - Gun
>= 2.1.0 and < 3.0.0
The OTP minimum agrees with the pinned toolchain and the CI baseline. The Gun range comes from gleam.toml. It is the compatibility range that the package is released against.

