Awesome
Awesome Gleam
For a full list of packages check out the Gleam package index.
Have a Gleam project to share with the world? Run gleam run
, assign a
category for it in packages/NAME.toml
, and run gleam run
again.
Looking for something to build? Check out the suggestions list.
- Packages
- API Clients
- Benchmarking
- Build Tooling
- Command Line
- Configuration
- Cryptography
- Data Structures
- Databases
- Erlang and OTP
- Error Handling
- File System
- Formats
- Frontend
- Gleam
- Graphics
- HTML
- HTTP
- HTTP Clients
- HTTP Servers
- JSON
- JavaScript
- Logging and Monitoring
- Machine Learning
- Networking
- Numbers
- Parsing
- Project Tooling
- Push Notifications
- Randomness
- SDKs
- Standards
- Templating
- Testing
- Text
- Time
- Validation
- Web frameworks
- Websites
- Projects
- Tools
- Resources
Packages
API Clients
- aws4_request - π - An AWS Signature Version 4 client implementation, used for S3 auth, etc
- glatus - π - Gleam bindings to the API of the Gatus health check tool
- gleam_hexpm - π - Gleam dynamic decoders for the API of Hex, the package manager for the BEAM ecosystem.
- glevatar - π - Easily create Gravatar URLs in Gleam
- tallgrass - π - Gleam wrapper for the PokeAPI.
Benchmarking
- gleamy_bench - π - A library for benchmarking gleam code.
- glychee - π - Glychee: Easy access to Elixir's Benchee from Gleam!
Build Tooling
- esgleam - π - esbuild for Gleam
- gleescript - π - Bundle your Gleam-on-Erlang project into an escript, a single executable file!
Command Line
- argv - π - A cross platform library for getting the command line arguments
- clip - π - A CLI Option Parser for Gleam
- gleam_community_ansi - π - ANSI colours, formatting, and control codes
- glint - π - Gleam command line argument parsing with basic flag support.
- glitzer - π - Progress bars for gleam.
- rad - π - A task runner for Gleam projects
- shellout - π - A Gleam library for cross-platform shell operations
- spinner - π - Animated progress spinners for your console
- stdin - π - Provides a synchronous iterator for consuming stdin. It supports all the non-browser targets, Erlang, Node, Deno, and Bun.
Configuration
- dot_env - π - Load environment variables from files
- envoy - π - A zero dependency cross platform Gleam package for reading environment variables
- gleam_dotenv - π - dotenv for Gleam
- glenv - π - A library for type-safe environment variable access.
- glenvy - π - A pleasant way to interact with your environment.
Cryptography
- argus - π - Argon2 password hashing library for Gleam, based on the reference C implementation.
- beecrypt - π - Buzzing Gleam bindings to the Erlang bcrypt hashing library
- gleam_crypto - π - A Gleam cryptography library supporting Erlang and JavaScript
- ids - π - Unique IDs for Gleam
- kmh - π - Implementation of Knuthβs multiplicative hashing (useful for ID obfuscation, etc.)
- youid - π - Generate and parse UUIDs
Data Structures
- act - π - Compose stateful actions to simulate mutable state
- argamak - π - A tensor library for the Gleam programming language
- delay - π - A dead simple data-structure for delaying side effects
- gleam_stdlib - π - A standard library for the Gleam programming language
- gleam_zlists - π - A library for working with lazy lists in Gleam
- glearray - π - Immutable arrays for Gleam
- gleither - π - A small data-structure for representing an Either Monad
- non_empty_list - π - Non-empty lists in Gleam
- tote - π - Bags (or multisets) in Gleam
- trie_again - π - Tries in Gleam
Databases
- cake - π - An SQL query builder for dialects PostgreSQL, SQLite, MariaDB, and MySQL
- migrant - π - Database migrations for SQLite in Gleam
- mungo - π - A MongoDB driver for Gleam (formerly gleam_mongo)
- pog - π - A PostgreSQL database client for Gleam, based on PGO
- radish - π - A Redis client for Gleam
- sqlight - π - Use SQLite from Gleam!
- squirrel - π - πΏοΈ Type safe SQL in Gleam
- storail - π - A simple on-disc JSON based data store
- gleam_sendgrid - π - Send emails from Gleam with SendGrid
- plunk - π - A Gleam library to send emails, manage contacts etc. using the Plunk API
- zeptomail - π - A wrapper for ZeptoMail's transactional email API
Erlang and OTP
- carpenter - π - Bindings for Erlang's ETS tables. Forked and updated from gts.
- chip - π - A Gleam registry library
- gen_core_erlang - π - Generate Core Erlang from Gleam (wraps the Erlang cerl compiler module)
- gleam_erlang - π - A Gleam library for working with Erlang
- gleam_otp - π - Fault tolerant multicore Gleam programs with OTP
- nessie_cluster - π - A small DNS clustering library for Gleam applications.
- process_waiter - π - Wait for Erlang processes to exit
- puddle - π - A resource pool manager for gleam
- shakespeare - π - General-purpose OTP actors.
Error Handling
- exception - π - A tiny package for dealing with exceptions
- snag - π - A boilerplate-free ad-hoc error type
File System
- file_streams - π - Gleam library that provides access to native Erlang binary file streams.
- filepath - π - Work with file paths in Gleam!
- simplifile - π - Basic file operations that work on all targets
Formats
- commonmark - π - CommonMark implementation for Gleam, for the BEAM or JS
- cymbal - π - Build YAML in Gleam!
- gsv - π - A simple csv parser and generator written in gleam
- iso_8859 - π - Gleam library to decode ISO/IEC 8859 binary data into native UTF-8 strings.
- jot - π - A parser for Djot, a markdown-like language
- tom - π - A pure Gleam TOML parser!
Frontend
- glailglind - π - Gleam modules and functions for installing and invoking TailwindCSS
- grille_pain - π - Toaster, made in lustre, for gleam
- lustre - π - An Elm-inspired framework for building web apps in Gleam!
- lustre_animation - π - Animations for lustre, utilizing JS requestAnimationFrame and setTimeout
- lustre_http - π - HTTP requests from lustre
- lustre_ui - π - A collection of components and design tokens for building Lustre apps.
- lustre_virtual_list - π - A virtual list component for lustre.
- lustre_websocket - π - Web Socket requests from lustre
- redraw - π - React bindings for Gleam! Supports everything modern React provides, with full Gleam Type-Checking system!
- sketch - π - A CSS-in-Gleam package, made to work with frontend, and directly with lustre!
- tardis - π - Time traveller debugger, tailor-made for Lustre
Gleam
- glance - π - A Gleam source code parser, in Gleam!
- glance_printer - π - A pretty_printer for the glance AST
- gleam_package_interface - π - Work with Gleam's package interfaces
- glexer - π - A lexer for Gleam source code
- pprint - π - Pretty print values with style!
Graphics
- ansel - π - A simple and fast vips image processing library for Gleam!
- gleam_community_colour - π - Colour types, conversions, and other utilities
HTML
- formal - π - Type safe HTML form decoding and validation!
- glentities - π - HTML entity encoder/decoder for Gleam
- htmb - π - A tiny HTML builder for Gleam
- htmgrrrl - π - Gleam bindings to htmerl, the fast and memory efficient Erlang HTML SAX parser.
- nakai - π - HTML generation for Gleam, on the server or anywhere else
HTTP
- cors_builder - π - A CORS Builder, performing validation and injection of CORS for misp, wisp and any framework!
- gleam_http - π - Types and functions for Gleam HTTP clients and servers
HTTP Clients
- gleam_fetch - π - Make HTTP requests in Gleam JavaScript with Fetch
- gleam_hackney - π - Gleam bindings to the Hackney HTTP client
- gleam_httpc - π - Gleam bindings to Erlang's built in HTTP client, httpc
HTTP Servers
- cgi - π - Common Gateway Interface (CGI) in Gleam
- gleam_elli - π - Run Gleam HTTP services with the Elli web server
- mist - π - a misty Gleam web server
JSON
- gleam_json - π - Work with JSON in Gleam
- json_typedef - π - Work with JSON using a schema! RFC8927
JavaScript
- conversation - π - Gleam bindings for the standard JavaScript Request and Response APIs
- gleam_javascript - π - Work with JavaScript types and values in Gleam
- javascript_dom_parser - π - Bindings to the JavaScript DOMParser API
- plinth - π - Bindings to Node.js and browser platform APIs
Logging and Monitoring
- glimt - π - A Gleam library for logging
- glog - π - A Gleam implementation of Erlang logger
- logging - π - Configuration for the Erlang logger
- stacky - π - Stacky β BEAM stack trace in Gleam
- systemd_status - π - Inspect the status of running systemd units
Machine Learning
- emel - π - Turn data into functions in the Erlang ecosystem
- gleam_synapses - π - A plug-and-play library for neural networks written in Gleam
Networking
- glisten - π - a shiny Gleam TCP/SSL server
- mug - π - A TCP client for Gleam!
- nessie - π - Gleam bindings for Erlang's built-in DNS resolution modules.
Numbers
- bigdecimal - π - Arbitrary precision decimal arithmetic for Gleam
- bigi - π - Arbitrary precision integer arithmetic for Gleam
- gleam_community_maths - π - A basic maths library
Parsing
- gleamsver - π - Comprehensive set of native Gleam utilities for handling SemVer 2.0.0 version strings.
- nibble - π - A string parsing library heavily inspired by elm/parser.
- stoiridh_version - π - Semantic Versioning 2.0.0
Project Tooling
- cactus - π - A tool for managing git lifecycle hooks with β¨ gleam! Pre commit, Pre push and more!
- go_over - π - A tool to audit Erlang & Elixir dependencies, to make sure your gleam projects really sparkle! β¨
- hexdocs_offline - π - Download an offline version of the hexdocs of your projects dependencies to a local folder!
Push Notifications
Randomness
- blah - π - fake data generation for gleam
- minigen - π - Pure random data generation, appropriate for realistic simulations
- prng - π - A Pure Random Number Generator
SDKs
- bucket - π - Gleam S3 API client, suitable for AWS S3, Garage, Minio, Storj, Backblaze B2, Cloudflare R2, Ceph, Wasabi, and so on!
- openfeature - π - The Gleam SDK for the OpenFeature specification.
- weapp - π - Gleam bindings for wechat miniprogram, a.k.a weapp
- wechat_dev_tools - π - Tools to develop wechat miniprogram in gleam
Standards
- dime - π - A ISO-4217 currency library for Gleam
- glisbn - π - A ISBN utility library for Gleam.
- marceau - π - A MIME types library for Gleam
- phony - π - An international phone number validator
Templating
- glemplate - π - A simple template engine for Gleam
- handles - π - Pure Gleam templating language inspired by Mustache and Handlebars.js
Testing
- birdie - π - Snapshot testing in Gleam
- exercism_test_runner - π - A test framework for Gleam exercises on Exercism
- glacier - π - Gleam Incremental Interactive Unit Testing
- gleeunit - π - Gleam bindings to Erlang's EUnit test framework
- testbldr - π - A library for programatically building and running test cases
Text
- dedent - π - Remove shared indentation from a string
- edit_distance - π - A pure Gleam package to compute the edit distance of two strings
- gap - π - A Gleam library for comparing strings/lists and producing a textual (styled) representation of the differences.
- glam - π - A package to help you easily pretty print structured data
- hug - π - Helpful and pretty CLI messages
- humanise - π - Easily format values for human readability!
- justin - π - Convert between snake_case, camelCase, and other cases in Gleam
- phonetic_gleam - π - A collection of gleam algorithms dealing with phonetics.
- punycode - π - Gleam implementation of punycode encoding and decoding
- rank - π - Ordinals for numbers, e.g. 1st, 2nd, 3rd
- wink - π - A simple Gleam box drawing library
Time
- birl - π - Date / Time handling for Gleam
- gtempo - π - A lightweight and Gleamy datetime library!
- gtz - π - A timezone data provider for Gleam!
- rada - π - A library for dates with no times or time zones
Validation
- crossbar - π - Data validation library in pure Gleam
- valid - π - A composable validation library for Gleam
Web frameworks
- glen - π - A peaceful web framework that targets JS.
- wisp - π - A practical web framework for Gleam
Websites
- lustre_ssg - π - A simple static site generator for Lustre projects.
Projects
Compilers
Compilers for Gleam and compilers written in Gleam.
- gleam-lang/gleam - The Gleam compiler.
- gleam-lang/example-lisp-interpreter - A toy Lisp interpreter in Gleam.
Web applications
Web applications written in Gleam.
- gleam-lang/example-echo-server - An example Gleam web application.
- gleam-lang/example-todomvc - A serverside implementation of TodoMVC written in Gleam!
- gleam-lang/packages - The Gleam package index website.
- aosasona/jsorm - A minimal JSON explorer in Gleam + HTMX.
- ghivert/gloogle - A search engine for the Gleam ecosystem, built in Lustre + Wisp.
- ryanmiville/lustre-todomvc - A Lustre clientside implementation of TodoMVC written in Gleam!
Tools
- inoas/glychee - A simple Gleam benchmark runner which wraps Benchee for the heavy lifting.
- tynanbe/rad - A flexible task runner companion for the Gleam build manager.
Editor support
- gleam-lang/gleam.vim - Gleam support for Vim/Neovim.
- gleam-lang/gleam-mode - An emacs major mode for the Gleam programming language.
- gleam-lang/vscode-gleam - Gleam support for VS Code.
- digitalcora/sublime-text-gleam - Gleam support for Sublime Text.
- sbdchd/neoformat - A Vim/Neovim plugin for formatting code with support for
gleam format
. - itsgreggreg/language-gleam - Gleam language support in Atom.
- DannyLettuce/gleam_gedit - Gleam syntax support for Gedit (and other GtkSourceView editors).
Resources
Websites
Websites with Gleam related content.
- gleam.run - Gleam's website.
- tour.gleam.run - Gleam's interactive tour and tutorial.
- gleamweekly.com - A weekly newsletter of handpicked articles and community news.
- gloogle.run - A search engine for the Gleam ecosystem.
Courses
- Exercism's Gleam track - Crowd-sourced code mentorship. Practice having thoughtful conversations about code.
- tanklesxl/gladvent - An
Advent of Code
runner for Gleam, targeting Erlang.
Talks
- Introduction to Gleam - Harry Bairstow
- Distributed music programming with Gleam, BEAM, and the Web Audio API - Hayleigh Thompson
- I learned Gleam in a week. Here's how it went - Theo Harris
Social Media
- #gleamlang hashtag
- @gleamlang - The official twitter account.
- @louispilfold - The creator of Gleam.