In Progress

Features for the next release
  • Dependency conflict resolution

    Improve dealing with conflicting dependency versions by giving the user hints

  • Better Windows Support

    Improve the Windows OS non-developer mode support for running production programs

  • Hex vulnerability alerting

    Showing warnings to the programming when packages with known vulnerabilities are used

  • Compilation to Erlang abstract forms

    Erlang debugger support, line numbers in stack traces, and faster compilation

Planned Features and Explorations

Things we're exploring or working on for the next few Gleam versions
  • Hex API key generation

    Generate an API key for Hex when we reach the rate limit

  • Function inlining

    Improve performance and stack usage by inlining a few functions from the core libraries

  • Code linking in docs

    Code linking syntax for documentation comments

  • Private Hex

    Hex private package support for companies and big teams

  • Better JavaScript Records

    JavaScript record performance improvements

  • Lift constants to the global scope in JS

    Lifting constant expressions into global scope on JavaScript

  • Mutual TCO on JavaScript

    Improve how we generate recursion on JavaScript to support mutual tail calls

  • Better OTP apps

    New OTP application initialisation interface

  • Licence compliance tooling

    Helping developers ensure their dependencies have compatible licences

  • Researching

    FFI type correctness safeguards in development

  • Researching

    Improved ergonomics for cross-target packages

  • Researching

    OTP release building

  • Researching

    Test discovery functionality

Version History

Check out everything that's come to Gleam in the past!
  • v1.17

    June 2026
    • Export escript command
    • Todo expressions in constants
    • Unknown value import suggestions
    • Context aware type printing in warnings
    • Further JavaScript pattern matching optimisation
    • Improved git repository detection for package publication
    • Fault tolerant compilation of the list prepend and record update syntaxes
    • Counts displayed in gleam deps outdated command
    • --no-print-progress flag for gleam dev command
    • Operator correction hints for guard expressions
    • Language server highlight references
    • Language server record update hover improvements
    • Language server remove redundant record update code action
    • Language server pattern match on discarded value code action
    • Language server create unknown module code action
  • v1.16

    April 2026
    • JavaScript source map generation
    • Package level fault tolerance
    • Language server failed import diagnostic messages
    • String prefix performance improvements on JavaScript
    • Oversized int warnings on JavaScript
    • Helpful error messages for invalid source characters that look like valid characters
    • Hex package ownership transfer command
    • Hex resolution error message improvements
    • List prepending in constant expressions
    • Build tool support for mts, cts, jsx, and tsx external files
    • Formatter tuple handling improvements
    • Language server and and remove anonymous function code actions
    • Language server replace hole with type code action
  • v1.15

    March 2026
    • Adoption of Hex's new OAuth and MFA based authentication
    • Helpful custom messages for common Hex errors
    • Improved CLI help commands
    • gleam.toml configuration inconsistencies corrected
    • <> support in guard clauses
    • Internal types structure hidden from language server completion and code actions
    • New BitArray$isBitArray and BitArray$BitArray$data functions for JS FFI
    • JS FFI runtime type checking functions now return `value is TypeName`
    • Missing README documentation checks for package publishing
    • Language server code folding
    • Language server rename, go-to definition, hover, and find references support for guard clauses
    • Language server rename and find references support for string prefix patterns
    • Language server extract anonymous function improvements
    • Language server renaming modules from point of use as well as import
    • Language server more precise completions to prevent suffix duplication
    • Language server shows original parameter names in signature help
    • Language server keyword expression completion
    • Language server "fill labels" code action uses variable in current scope
    • Language server "interpolat string" code action more flexible
    • Language server "generate dynamic decoder" improved placeholder value generation
    • Language server "generate dynamic decoder" support for nil values
    • Language server extraction support for values at the start of a pipeline
    • Language server custom type definition hover support
    • Language server "add missing type parameter" code action
  • v1.14

    December 2025
    • @external annotation for external types
    • Bit array pattern matching compilation improvements
    • Faster variant equality checking on JavaScript
    • gleam deps outdated command
    • Type directed autocompletion
    • Record update syntax for constants
    • Missing patterns uses definition order
    • Detatched documentation warnings
    • Redundant module warnings
    • Improved type name selection in language server and documentation
    • Language server rename failure notification
    • Language server improved diagnostic grouping
    • Language server "merge case branches" code action
    • Language server "annotate all top level definitions" code action
  • v1.13

    October 2025
    • Bit array pattern matching compilation improvements
    • Dependency version change information printing
    • Improved type name selection in language server and documentation
    • Unified JavaScript API for Gleam data types
    • Unused recursive function argument detection
    • Language server "add omitted labels" code action
    • Language server "extract function" code action
    • Language server "collapse nested case" code action
    • Language server "remove unreachable clauses" code action
    • Language server "pattern match on value" code action improvements
    • Language server inter-module "generate function" code action
  • gleam_otp v1.0

    October 2025
    • Dynamic process supervision
  • v1.12

    August 2025
    • Custom messages for `echo`
    • JSDoc comments in generated JavaScript
    • Dead code elimination for definitions
    • Redundant comparison detection
    • Generated code size improvements for record updates
    • Calculation support in bit array pattern size segments
    • Alerting for when new major dependency versions are available
    • Improved error messages for dependency version conflicts
    • Programmer choice support for list formatting
    • Endianness for UTF bit array segments
    • Same-module Erlang small function inlining
    • Version git tag prefix for monorepos
    • Redundant comparison detection
    • Language server "remove block" code action
  • gleam_erlang v1.0, gleam_otp v1.0

    June 2025
    • Named process support
    • Improved actor API
    • Improved supervision API
    • Improved process API
    • Improved selective receive API
    • Improved atom API
  • v1.11

    June 2025
    • Generating `case` expressions using a decision tree on JavaScript
    • Test keyword `assert`
    • Language server constant expression completion
    • "gleam dev" command
    • Side-effectless unused expression detection
    • Hyperlinks to referenced types in generated HTML documentation
    • UTF8 and UTF16 JavaScript bit array support
    • Windows ARM precompiled binaries
    • Bit array truncation warnings
    • Record labels in exhaustiveness errors
    • Language server "fill labels" code action for pattern
    • Language server "generate variant" code action
    • Language server "remove unused imports" code action complete
  • v1.10

    April 2025
    • Bit array exhaustiveness analysis
    • Dead code detection, including reference loops
    • Fault tolerant analysis of binary operators
    • JavaScript performance improvement via immediately invoked function expression removal
    • Software Bill of Materials (SBoM) and Supply-chain Levels for Software Artifacts (SLSA) Provenance information in container images
    • `gleam export package-information` command
    • Language server find references
    • Language server rename constant
    • Language server rename custom type variant
    • Language server rename function
    • Language server rename type
    • Language server "extract constant" code action
    • Language server "fill unused fields" code action
    • Language server "remove echo" code action
    • Language server "wrap in block" code action
    • Optional float annotations for float literals in bit arrays
  • v1.9

    March 2025
    • Custom CA certificate support
    • Debug keyword `echo`
    • Hex search integration
    • Improved dependency version conflict error messages
    • Unaligned bit array support on JavaScript
    • Language server jump to type definition
    • Language server convert call to pipeline code action
    • Language server convert pipeline to call code action
    • Language server generate JSON encoder code action
    • Language server inline variable code action
    • Language server interpolate string code action
  • v1.8

    February 2025
    • Language server label completion
    • Fault tolerant parsing of `case` expressions
    • Fault tolerant analysis of pipelines
    • Support OTP27 doc attributes
    • Language server generate function code action
    • Language server pattern match on value code action
    • Language server rename variable code action
  • v1.7

    January 2025
    • Custom message syntax for `let assert`
    • Custom type construction codegen monomorphisation
    • Custom type constructor deprecation
    • Custom type update type re-specialisation
    • External file subdirectory support
    • Language server `let` to `case` code action
    • Language server convert to/from `use` code action
    • Language server extract variable code action
    • Language server code action to generate dynamic decoder
    • Local Hex API key encryption
  • v1.6

    November 2024
    • BEAM bytecode compilation daemon
    • Bit array construction optimisation on JavaScript
    • Context aware type error printing
    • Custom type variant inference
    • JavaScript `gleam new` template
    • Language server add missing function annotations code action
    • Language server context aware type hover display
    • Language server qualify and unqualify code actions
    • Monorepo support for HTML documentation
    • Optional Hex dependency support
    • Specific packages `gleam update`
    • Unsafe JavaScript number warnings
  • v1.5

    September 2024
    • Bit array UTF-8 segment inference
    • Compilation flag `--no-print-progress`
    • Context aware anonymous function inference
    • Context aware inexhaustive case expression errors
    • Gleam version requirement detection
    • Improved panic printing on Erlang
    • Language server add missing case patterns code action
    • Language server local variable autocompletion
    • Language server missing import fix code action
  • v1.4

    August 2024
    • Bit array options `little`, `big`, `signed`, and `unsigned` JavaScript support.
    • Compilation warning persistence
    • Constant expression concat operator support
    • Further fault tolerant compilation
    • Label shorthand syntax
    • Language server add labels code action
    • Language server assert to case code action
    • Language server case correction code action
    • Language server document symbols
    • Language server field access completion
    • Language server label shorthand conversion code action
    • Language server signature help
  • v1.3

    July 2024
    • `gleam add` and `gleam remove`
    • Arithmetic guards
    • Erlang/OTP 27 support
    • Fault tolerant expression compilation
    • Language server automatic import insertion
    • Language server unused field hovering
    • Purity hints for JavaScript bundlers
  • v1.2

    May 2024
    • `gleam hex revert`
    • Erlang module collision prevention
    • Fault tolerant compilation
    • Language server import autocompletion and hover
    • Redundant `let assert` detection
    • Unreachable code detection
  • v1.1

    April 2024
    • Bun JavaScript runtime support
    • Internal types and values
    • Language server compilation batching
    • Language server go-to definition
    • Language server import autocompletion
    • Nested tuple indexing
    • Target related dead code elimination