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 Formats
- File System
- Frontend
- Gleam
- Graphics
- HTML
- HTTP
- HTTP Clients
- HTTP Servers
- JSON
- JavaScript
- Logging and Monitoring
- Networking
- Numbers
- Parsing
- Push Notifications
- Randomness
- 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
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
- gleam_community_ansi - 馃摎 - ANSI colours, formatting, and control codes
- glint - 馃摎 - Gleam command line argument parsing with basic flag support.
- rad - 馃摎 - A task runner for Gleam projects
- shellout - 馃摎 - A Gleam library for cross-platform shell operations
- spinner - 馃摎 - Animated progress spinners for your console
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
- glenvy - 馃摎 - A pleasant way to interact with your environment.
Cryptography#
- 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
- youid - 馃摎 - Generate and parse UUIDs
Data Structures#
- argamak - 馃摎 - A tensor library for the Gleam programming language
- gleam_stdlib - 馃摎 - A standard library for the Gleam programming language
- glearray - 馃摎 - Immutable arrays for Gleam
- non_empty_list - 馃摎 - Non-empty lists in Gleam
- tote - 馃摎 - Bags (or multisets) in Gleam
- trie_again - 馃摎 - Tries in Gleam
Databases#
- gleam_pgo - 馃摎 - Gleam bindings to the PGO PostgreSQL client
- migrant - 馃摎 - [ALPHA] Database migrations for SQLite in Gleam
- mungo - 馃摎 - A MongoDB driver for Gleam (formerly gleam_mongo)
- radish - 馃摎 - A Redis client for Gleam
- sqlight - 馃摎 - Use SQLite from Gleam!
Email#
- 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#
- 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
- gts - 馃摎 - Opinionated bindings to erlang's ets tables.
- process_waiter - 馃摎 - Wait for Erlang processes to exit
- puddle - 馃摎 - A resource pool manager for gleam
Error Handling#
- exception - 馃摎 - A tiny package for dealing with exceptions
- snag - 馃摎 - A boilerplate-free ad-hoc error type
File Formats#
- cymbal - 馃摎 - Build YAML in Gleam!
- gsv - 馃摎 - A simple csv parser and generator written in gleam
- tom - 馃摎 - A pure Gleam TOML parser!
File System#
- filepath - 馃摎 - Work with file paths in Gleam!
- simplifile - 馃摎 - Basic file operations that work on all targets
Frontend#
- glailglind - 馃摎 - Gleam modules and functions for installing and invoking TailwindCSS
- 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 componenet for lustre.
- lustre_websocket - 馃摎 - Web Socket requests from 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
Graphics#
- 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.
HTTP#
- gleam_http - 馃摎 - Types and functions for Gleam HTTP clients and servers
- marceau - 馃摎 - A MIME types library for Gleam
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
JavaScript#
- conversation - 馃摎 - Gleam bindings for the standard JavaScript Request and Response APIs
- gleam_javascript - 馃摎 - Work with JavaScript types and values in Gleam
- 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
- systemd_status - 馃摎 - Inspect the status of running systemd units
Networking#
Numbers#
- gleam_community_maths - 馃摎 - A basic maths library
Parsing#
- jot - 馃摎 - A parser for Djot, a markdown-like language
- nibble - 馃摎 - A string parsing library heavily inspired by elm/parser.
Push Notifications#
Randomness#
- blah - 馃摎 - fake data generation for gleam
- minigen - 馃摎 - Pure random data generation, appropriate for realistic simulations
- prng - 馃摎 - A Pure Random Number Generator
Testing#
- birdie - 馃摎 - Snapshot testing in Gleam
- exercism_test_runner - 馃摎 - A test framework for Gleam exercises on Exercism
- gleeunit - 馃摎 - Gleam bindings to Erlang's EUnit test framework
- testbldr - 馃摎 - A library for programatically building and running test cases
Text#
- 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
- glemplate - 馃摎 - A simple template engine for Gleam
- glisbn - 馃摎 - A ISBN utility library for Gleam.
- hug - 馃摎 - Helpful and pretty CLI messages
- iso_8859 - 馃摎 - Gleam library to decode ISO/IEC 8859 binary data into native UTF-8 strings.
- justin - 馃摎 - Convert between snake_case, camelCase, and other cases in Gleam
- phonetic_gleam - 馃摎 - A collection of gleam algorithms dealing with phonetics.
- phony - 馃摎 - An international phone number validator
- punycode - 馃摎 - Gleam implementation of punycode encoding and decoding
- rank - 馃摎 - Ordinals for numbers, e.g. 1st, 2nd, 3rd
Time#
Validation#
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-todomvc - A serverside only implementation of Todo MVC written in Gleam!
- gleam-lang/example-echo-server - An example Gleam web application.
- gleam-lang/packages - The Gleam package index website.
- aosasona/jsorm - A minimal JSON explorer in Gleam + HTMX.
Tools#
- tynanbe/rad - A flexible task runner companion for the Gleam build manager.
- inoas/glychee - A simple Gleam benchmark runner which wraps Benchee for the heavy lifting.
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.
Courses#
- Exercism's Gleam track - Crowd-sourced code mentorship. Practice having thoughtful conversations about code.
- tanklesxl/gladvent - An
Advent of Coderunner 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#
Twitter#
- #gleamlang hashtag
- @gleamlang - The official twitter account.
- @louispilfold - The creator of Gleam.